[go: up one dir, main page]

US20230376511A1 - Temporal Layers for Presenting Personalization Markers on Imagery - Google Patents

Temporal Layers for Presenting Personalization Markers on Imagery Download PDF

Info

Publication number
US20230376511A1
US20230376511A1 US18/137,256 US202318137256A US2023376511A1 US 20230376511 A1 US20230376511 A1 US 20230376511A1 US 202318137256 A US202318137256 A US 202318137256A US 2023376511 A1 US2023376511 A1 US 2023376511A1
Authority
US
United States
Prior art keywords
personalization
time period
computing system
particular poi
computing device
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
Application number
US18/137,256
Inventor
Amund Tveit
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to US18/137,256 priority Critical patent/US20230376511A1/en
Assigned to GOOGLE LLC reassignment GOOGLE LLC CERTIFICATE OF CONVERSION Assignors: GOOGLE INC
Assigned to GOOGLE INC. reassignment GOOGLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TVEIT, AMUND
Publication of US20230376511A1 publication Critical patent/US20230376511A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management

Definitions

  • the subject matter of this application is generally related to online map services.
  • Personalization markers can be used with online map services (e.g., Google EarthTM) to highlight geographic locations in imagery provided by the online map services. Users can add a variety of personalization markers to map imagery, including placemarks (i.e., for highlighting a geographic location), image overlays, paths, polygons (i.e., for selecting a geographic area) and network links (e.g., hyperlinks). These personalization markers can be shared in online communities and other forums, where users can, for example, manually download image overlays containing personalization markers of other users and incorporate the overlay into the current imagery.
  • Google EarthTM online map services
  • Temporal layers can be of arbitrary temporal or geographical size, fully or partially overlapping in time or space, split into smaller temporal layers, logically aligned or combined and/or continuous or non-continuous in time or space.
  • temporal layers can be stored in a repository where they can be searched and used by others.
  • Temporal layers can be associated with other search services (e.g., news search) or search histories (e.g., automatic temporal layers based on search history).
  • search services e.g., news search
  • search histories e.g., automatic temporal layers based on search history.
  • a user's personal profile can be compared with other users' personal profiles, and the results of the comparison can be used to recommend temporal layers. Advertisements can be associated with temporal layers.
  • first content e.g., a first set of digital images
  • second content associated with the same geographic location (e.g., a second set of digital images), so that the second content can be associated with a personalization marker of a temporal layer.
  • a method includes: receiving input specifying a temporal layer containing a personalization marker associated with imagery; and responsive to the input, providing the temporal layer for display on a device.
  • a method includes: generating a personalization marker for presentation on imagery; generating a timestamp for the personalization marker; and associating the personalization marker with a temporal layer using the timestamp.
  • a method includes: receiving a first set of digital images taken at a geographic location, the first set of digital images including information identifying the geographic location; comparing the first set of digital images with a second set of digital images; determining a subset of digital images from the second set of digital images that matches the first set of digital images; and associating the subset of digital images with a personalization marker in a virtual world application at the geographic location.
  • a method includes: specifying a search query; responsive to the search query, receiving imagery and a temporal layer, the temporal layer including information associated with a personalization marker included in the temporal layer; and presenting the imagery and temporal layer including the personalization marker on a display.
  • temporal layer for presenting personalization markers on imagery including implementations directed to systems, methods, apparatuses, computer-readable mediums and user interfaces.
  • FIG. 1 is an image of San Francisco generated by the Google EarthTM online map service.
  • FIG. 2 is an image of San Francisco, including a single personalization marker.
  • FIG. 3 is an image of San Francisco, including a set of twenty personalization markers.
  • FIG. 4 illustrates an implementation of a dialog for specifying personalization markers including timestamps.
  • FIG. 5 A is an example of a user interface for specifying a temporal layer.
  • FIGS. 5 B and 5 C are images of San Francisco with and without a temporal layer applied.
  • FIG. 6 is a flow diagram of an example of a temporal layer file generation process.
  • FIG. 7 is a block diagram of an exemplary client/server architecture for delivering temporal layer files to client devices.
  • FIG. 8 is a flow diagram of an example of an ad targeting process using temporal layers.
  • FIG. 9 is a block diagram of an implementation of an ad targeting system for associating advertisements with temporal layers.
  • search engines e.g., Google Image SearchTM
  • search services e.g., news search, image archives
  • video services e.g., bookmark services, games, etc.
  • FIG. 1 is an image of San Francisco generated by the Google EarthTM online virtual world program developed by Google, Inc. (Mt. View, California).
  • Google EarthTM maps the Earth by superimposing images obtained from satellite imagery, aerial photography and a Geographic Information System (GIS) over a three-dimensional (3D) virtual globe.
  • GIS Geographic Information System
  • the image shown in FIG. 1 is fairly easy to view even though the image includes a number of default markers for providing information and highlighting points of interest.
  • Some virtual world applications allow users to add “personalization markers” to imagery to designate points of interest and/or to provide information or content.
  • “Personalization markers” can include but are not limited to: placemarks, image overlays, paths, a polygon (e.g., for selecting a geographic area) and network links (e.g., hyperlinks), etc.
  • Google EarthTM provides “placemarks,” which are markers (e.g., represented by “pushpin” icons) overlaid onto imagery at user-selected locations. Placemarks can be clicked or otherwise interacted with by the user to display information and/or content (e.g., digital photos) related to the location.
  • a suitable virtual navigation tool can be used to position a placemark in the image.
  • a dialog box or other user interface element can be used to set properties of the placemark, including, for example, a name, description, color, scale, opacity, view, altitude, etc.
  • Placemarks created by users can be shared with other users in an online Web community, such as “The Google Earth Community.”
  • FIG. 2 is a satellite image of San Francisco, including a single placemark 202 represented by a “pushpin” icon.
  • the image is uncluttered and generally easy to read.
  • the image can become cluttered.
  • an image of San Francisco includes a set of twenty placemarks 302 created over a time span of several days.
  • the placemarks 302 are labeled 1-20 for convenience.
  • Many of the icons representing placemarks are overlapping which makes the image appear cluttered.
  • the close proximity of the icons makes it difficult for a user to select a particular placemark using a mouse or other pointing device.
  • Google EarthTM allows the user to remove a placemark from the image by unchecking a box associated with the placemark located in a side panel of the Google EarthTM user interface. Although this method may work for a small number of placemarks, it can become tedious and time consuming if the user wants to remove several hundred placemarks.
  • FIG. 4 is an example of a dialog 400 for specifying personalization markers with timestamps.
  • the dialog 400 includes text boxes 402 for specifying various parameters for a placemark.
  • a first text box 402 a is used for specifying a name for a placemark.
  • the text entered into box 402 a can be displayed in the image proximate to a representative icon for the placemark.
  • Text boxes 402 b and 402 c are used to specify the coordinates (e.g., latitude and longitude) of the placemark, respectively. In some implementations, these parameters can also be specified graphically using, for example, a suitable virtual navigation tool.
  • Text boxes 402 d and 402 e are used to specify a timestamp (e.g., date and time) associated with the creation of the placemark. In some implementations, the text boxes 402 d and 402 e can include the current date and time as default values.
  • a personalized marker can be associated with a time span (e.g., a historic battle lasting for a few days), which can be later added into a temporal layer.
  • the time span could be delineated by a stop and start timestamp.
  • the dialog 400 can be extended, for example, to include one or more text boxes and/or other user interface elements for entering start and stop timestamps for the time span. If a temporal layer corresponding to the time span or timestamp is not available, a new temporal layer can be created for the time span or timestamp, and the personalization marker can be added to the new temporal layer.
  • Text box 402 f is used to provide a description that will be displayed when a user selects the personalization marker by clicking or otherwise interacting with the icon representing the personalization marker.
  • the dialog 400 described above is one example of a dialog that can be used to specify a timestamp for a placemark.
  • Other methods or mechanisms for specifying timestamps for personalization markers in general can include, but are not limited to: tool bars, menus, graphical tools, etc. Any numbers or types of parameters for personalization markers can be specified by a user depending on the application.
  • the dialog 400 can include a button 402 g , which when clicked by a user, provides a second or extended dialog for allowing the user to attach or associate information or content (e.g., digital photos, digital video, a .pdf) to a personalization marker.
  • timestamps and other parameters can be specified programmatically without user intervention, or can be provided by an external resource (e.g., GPS receiver, network server).
  • Temporal layer is an image overlay or software layer that includes a set of personalization markers that have timestamps that fall within a time span.
  • Temporal layers can be of arbitrary temporal or geographical size, fully or partially overlapping in time or space, split into smaller temporal layers, logically aligned or combined and/or continuous or non-continuous in time or space. Temporal layers can be stored in a repository where they can be searched and used by others.
  • Temporal layers can be associated with search services (e.g., news search) or search histories (e.g., automated temporal layers based on search history).
  • search services e.g., news search
  • search histories e.g., automated temporal layers based on search history.
  • a user's personal profile can be compared with other users' personal profiles (e.g., other users having similar interests to the user) and the results of the comparison can be used to recommend temporal layers to the user.
  • Advertisements can be associated with temporal layers for ad targeting purposes.
  • temporal layers can be specified using Extensible Markup Language (XML) grammar.
  • XML Extensible Markup Language
  • KML Keyhole Markup Language
  • KML is used to specify placemarks and dynamically fetch and update KML files from a KML server.
  • KML is an XML grammar and file format for modeling and storing geographic features such as points, lines, images and polygons for display in the Google EarthTM 3D viewer.
  • a placemark can be specified using a KML file.
  • the Google EarthTM client can render the KML file and display the placemark over the current image.
  • an exemplary KML file for creating a placemark over an image can include the following KML statements:
  • the KML file described above includes (reading the file from top to bottom) an XML header, a KML namespace declaration, the placemark's description, the placemark's name, a camera view for the placemark, a default visibility for the placemark (in this case, it has to be switched on by the user), a style for the placemark, detailing where the image is located, a switch for whether or not the placemark is to be extruded (yes), the type of altitude mode the placemark should use, the position of the placemark on the Earth's surface and the timestamp for the placemark.
  • the KML file can be created by a client device and sent to a KML server, which can store the KML file in a repository.
  • the ⁇ TimeStamp> element has the syntax dateTime(YYYY-MM-DDThh:mm:sszzzzzz). This syntax includes a date field, a local time field and a field for a plus or minus conversion to Universal Time Coordinated (UTC).
  • UTC Universal Time Coordinated
  • the ⁇ TimeStamp> element allows for the creation of temporal layers as described in reference to FIGS. 6 and 7 . Further detail on using KML to perform custom applications can be found in the “KML 2.1 reference” document, which is incorporated by reference herein in its entirety.
  • the “KML 2.1 reference” document is publicly available from Google, Inc., and includes samples of KML that can be used to implement temporal layers.
  • FIG. 5 A is an example of a dialog 500 for specifying a temporal layer.
  • the dialog 500 includes a checkbox 502 , text boxes 504 , 506 , 508 , 510 and a search box 512 .
  • placemarks spanning the world have been created and uploaded to a virtual world application, such as Google EarthTM.
  • the user can select one or more temporal layers from a list of available temporal layers.
  • the temporal layers can be organized into hierarchical folders based on hemispheres, regions, continents, states, cities, towns or any other suitable delineation.
  • a user can select a desired temporal layer by highlighting the description in the list. In the example shown, the user has selected San Francisco.
  • a user can logically align and join multiple temporal layers by highlighting the desired temporal layers in the list (e.g., holding the shift key down while selecting) and checking the check box 502 .
  • the Roman Empire can be built from several temporal layers that cover different geographical areas (e.g., from individual empires time period) or landscape that changes over time.
  • multiple temporal layers can be selected that are non-continuous in time and space by highlighting the desired temporal layers in the list and leaving the check box 502 unchecked. For example, a temporal layer that includes a “Winter Olympics” time period will show personalization markers for different places on the Earth but with different timestamps (e.g., a few week periods every 4 years.).
  • the text boxes 506 a and 506 b allow the user to specify a date range for one or more temporal layers.
  • the user has specified a date range of Jan. 7, 2007 through Jan. 9, 2007 for the temporal layer covering San Francisco.
  • the user can specify different date ranges for different temporal layers.
  • the text boxes 508 a and 508 b allow the user to specify a time range for one or more temporal layers.
  • the user has not specified a particular time range. This can result in personalization markers having timestamps within the specified date range to be included in the temporal layer.
  • the text box 510 allows the user to specify a geographical area (e.g., in square miles) for one or more temporal layers.
  • a geographical area e.g., in square miles
  • the user has selected a geographic area of 10 square miles for the temporal layer covering San Francisco between the dates Jan. 7-9, 2007.
  • users can specify temporal layers and share the temporal layers with other users in, for example, an online community.
  • Users of the online community may have different opinions about how to specify a spatial or temporal boundary of a temporal layer.
  • a “social” temporal layer a user may create a placemark that includes text of the user's opinion about a historical event associated with a particular time span and geographic location (e.g., the time span of the Viking period or the geographical span of the Roman Empire).
  • differing opinions among users about the time span and geographic location of a historical event can be resolved by computing, for example, a median or average temporal and/or spatial boundary for the temporal layer.
  • the median or average temporal and/or spatial boundary can be computed from statistical distribution information derived from various opinions presented in the online community or elsewhere (e.g., from academia).
  • Temporal layers having statistical temporal and/or spatial boundaries can be displayed with embellishments (e.g., thicker lines, colored lines) to differentiate from temporal layers having deterministic boundaries.
  • some users can have more authority than other users in an online community.
  • This authority can be earned by, for example, adding many previous temporal layers to the online community that are close to the median or average temporal layer and/or by being favored by other users or peers (e.g., the user is a famous scholar).
  • the personalization marker of an authority user can be highlighted (or otherwise modified) to visually distinguish the authority user's personalization marker from other personalization markers.
  • FIGS. 5 B and 5 C are satellite images of San Francisco with and without a temporal layer covering San Francisco between the dates Jan. 7-9, 2007.
  • FIG. 5 B the larger number of “pushpin” icons representing placemarks have cluttered the image, making the selection of a particular placemark difficult.
  • FIG. 5 C when the temporal layer is applied to the image, only placemarks for the dates Jan. 7-9, 2007 are shown, resulting in an image with improved readability and usability.
  • the temporal layer acts a time-based filter for filtering out personalization markers that do not meet the specified filter criteria.
  • the search box 512 in dialog 500 allows a user to search for temporal layers using search queries.
  • the user can enter a search query in the text box 512 and click the search button to start a search.
  • a search engine receives the query, parses out query terms, then uses the query terms with an index (e.g., an inverted index) to access a repository of personalization markers.
  • the user could enter the search query “winter olympics” to find temporal layers including personalization markers having timestamps that are contained in the time span of the Winter Olympics.
  • a user can indirectly search for temporal layers by searching for something that is frequently associated with a time period (or region).
  • searching for temporal layers related to, for example, Elvis Presley several time periods during his career and life may be presented in the search results.
  • the search query “Elvis in the military” may return one or more temporal layers with a date range of the 1960s that includes one or more placemarks for a geographic region spanning Germany.
  • Such indirect search-based selection can be implemented, for example, using clustering technology or other information extraction technologies, as described in reference to FIG. 9 .
  • the dialog 500 is one example of the many ways a user can specify parameters for creating a temporal layer. Other methods are possible. For example, rather than a dialog (or in addition to a dialog), the user can be allowed to specify parameters using an embedded navigation control or other user interface element. A set of wheels or sliders with variable granularity jumps can be used to search through a repository of temporal layers.
  • the embedded navigation control shown in FIG. 5 B can be augmented with additional controls (e.g., additional wheels, sliders or buttons) or operate in two modes: one mode for navigating temporal layers and another mode for navigating imagery.
  • temporal layers are specified automatically or programmatically without user intervention by, for example, an application, utility or operating system.
  • FIG. 6 is a flow diagram of an example of a temporal layer file generation/rendering process 600 .
  • a virtual world application running on a client device allows a user to navigate a virtual world (e.g., Google EarthTM, Microsoft® Virtual EarthTM).
  • the process 600 is not limited to virtual world applications but can be used with any application that uses maps or imagery.
  • the client device can be any device capable of displaying maps or imagery, including but not limited to: computers, mobile phones, media player/recorders, television set-top boxes, game consoles, navigation systems, personal digital assistants (PDA), email devices, electronic tablets, consumer electronic devices).
  • PDA personal digital assistants
  • the client device communicates with a server over a network connection (e.g., the Internet, Ethernet, a wireless network).
  • the server receives a request for a temporal layer from the client device ( 602 ).
  • the request can include temporal layer specification data and viewer coordinates.
  • the viewer coordinates determine the geographic location on Earth that the user is currently viewing or would like to navigate or “fly” to.
  • Temporal layer specification data can include any information that can be used to create a temporal layer, including a date range, a time range, a geographic area, coordinates for personalization markers, etc.
  • the server uses the viewer coordinates and/or the temporal layer specification data to generate one or more temporal layer files ( 604 ).
  • the generation of a temporal layer file includes retrieving time stamped personalization markers from a repository, as described in reference to FIG. 7 .
  • the temporal layer file is sent to the client device ( 606 ).
  • the client device renders the temporal layer file for presentation in a viewer ( 608 ).
  • the temporal layer file is a KML file that is generated by a KML server and sent to a client device to be rendered and presented to a user in a viewer (e.g. the Google EarthTM 3D viewer).
  • the temporal layer file is a KML file that is generated by the client device using temporal layer specification data (e.g., placemark coordinates) received from the server.
  • a script language e.g., PythonTM scripting language
  • the KML file includes a network link that loads the script.
  • the script can include one or more loops for extracting latitude and longitude values from, for example, an array of latitude and longitude values for placemarks contained in the temporal layer.
  • the latitude and longitude values can be inserted in a ⁇ coordinates> element of a ⁇ Point> for generating KML that can be rendered and presented in the 3D viewer.
  • a trigger event e.g., a network link refresh
  • the script can generate new KML using the latitude and longitude values.
  • FIG. 7 is a block diagram of an implementation of a client/server architecture 700 configured for delivering map imagery and one or more temporal layer files to client devices 704 through a network 702 (e.g., the Internet, Ethernet, wireless network).
  • the client/sever architecture 700 includes a map server 706 , a temporal layer data repository 708 and a map data repository 710 .
  • client devices 704 send requests for refresh imagery and/or temporal layer files to the map server 706 .
  • the requests can include temporal layer specification data for specifying how a temporal layer will be generated by the map server 706 .
  • temporal layer specification data include date and time range data, geographical area, current view coordinates, content and any other data that can be used to create a temporal layer.
  • the temporal layer specification data is used by an index server (not shown) to retrieve placemarks stored in a repository 708 (e.g., a MySQL® database). For example, placemarks covering San Francisco that fall within the date range of Jan. 7-9, 2007, can be retrieved by the index server and sent to the map server 706 .
  • the map server 706 creates one or more temporal layer files (e.g., KML files) containing instructions and/or scripts that can be interpreted by a viewer running on the client device and used to render the temporal layer over imagery.
  • the map server 706 can also provide the client device with refresh imagery retrieved from the map data repository 710 .
  • FIG. 8 is a flow diagram of an example of an ad targeting process 800 using temporal layers.
  • a client device allows a user to navigate a virtual world application (e.g., Google EarthTM, Microsoft® Virtual EarthTM).
  • the process 800 is not limited to virtual world applications but can be used with any application that uses maps or imagery.
  • the process 800 begins when an ad request is received from a client device ( 802 ).
  • the request can include viewer coordinates and temporal layer specification data.
  • Ad context can be determined from the viewer coordinates, temporal layer specification data and/or content associated with a personalization marker ( 804 ).
  • Such data can be provided in, for example, a KML file. For example, if the user is viewing an image of San Francisco with a temporal layer containing placemarks spanning Jan. 7-9, 2007, then the viewer coordinates for those placemarks (e.g., described in a KML placemark file) and/or the specified date range can be used to define a context for which ads can be targeted.
  • the name of the placemark and any content associated with the placemark can be used to determine context.
  • placemark names and/or descriptions can be analyzed for keywords or themes using a clustering technology.
  • An example of clustering technology is described in U.S. Provisional Patent Application No. 60/416,144, for “Methods and Apparatus for Probabilistic Hierarchical Inferential Learner,” filed Oct. 3, 2002, which application is incorporated by reference herein in its entirety.
  • a location of interest to a user can be determined from viewer coordinates for a placemark, temporal layer specification data and/or content ( 806 ).
  • the targeted ads could be related to, for example, businesses operating in the geographic location represented by a placemark or other personalization marker, as determined by the viewer coordinates.
  • Temporal layer specification data can include a geographic area of interest (See FIG. 5 A ), which could be used to determine a boundary around a location of interest.
  • the name of the placemark or associated content can also provide clues on location.
  • GPS Global Positioning System
  • temporal layer specification data can be used to target ads to a specified time period.
  • an antique dealer can advertise antiques for a specified time period
  • a music or video download service can advertise audio or video content for a specified time period.
  • the process 800 determines one or more ads for presenting on a client device based on the ad context and/or location of interest ( 808 ).
  • an online ad targeting system e.g., Google AdSenseTM
  • Google AdSenseTM can match ad inventory to ad context and/or location of interest.
  • the ads are sent to the client device ( 810 ) where the ads are rendered for presentation in a viewer ( 812 ).
  • FIG. 9 is a block diagram of an example of an ad targeting system for including advertisements to temporal layers.
  • the system 900 includes an ad server 904 , a context server 908 , a map server 912 , an ad repository 916 , a map repository 914 and a temporal layer data repository 915 .
  • the system 900 is operationally coupled to one or more devices 902 through a network 906 (e.g., the Internet, Ethernet, wireless network).
  • a client device 902 includes a computer-readable medium 920 for storing a map client 922 (e.g., Google EarthTM client) and an operating system 924 .
  • the client device 902 also includes one or more processors 918 , which can be configured to execute instructions for performing various operations for the map client 922 and/or operating system 924 .
  • ad requests (including viewer coordinates and temporal layer specification (TLS) data) are sent by the client device 902 to the ad server 904 through the network 906 .
  • the viewer coordinates and TLS data are sent to the context server 908 , which uses, for example, clustering technology to determine a context for ad targeting. For example, if the viewing coordinates define a point in San Francisco, the ads can be targeted to San Francisco.
  • the TLS data includes content (text description, digital images), then the content can also be analyzed to determine an ad context.
  • a description of the ad context is sent back to the ad server 904 , which forwards the ad context description, together with the viewer coordinates, to the ad repository 916 .
  • a database manager uses the ad context description and viewer coordinates to select one or more ads from an ad inventory that are related to the ad context and location specified by the viewer coordinates.
  • Ads from the repository 916 are sent to the ad server 904 , which sends the ads to the client device 902 through the network 906 .
  • temporal layer files can be made available to other users over a network.
  • users can create temporal layer files and share them with other users.
  • a repository of temporal layer files can be coupled to a search engine that allows users to enter queries, such as the search feature described in reference to FIG. 5 A .
  • a collaborative filter or recommendation engine can use the query terms to filter out temporal layer files that may be of interest to a user. The user can then be presented with a list of recommendations for temporal layers.
  • user profiles can be compared to provide recommendations based on, for example, dissimilarities from similar users.
  • user profiles can be represented as vectors in n-space, where each vector component can be a user characteristic. The vectors can be then compared to each other using known mathematically techniques (e.g., Euclidean distance measure) to determine similarity between user profiles.
  • a recommendation engine can include a data structure for comparing personalization markers, temporal layers or users.
  • a user vector can have vector components that include, for example: i) personalization markers created (together with their time and position), ii) temporal layers created (with positions/areas and time spans) and iii) temporal layers and personalization markers viewed/visited.
  • the vector components can be created in chunks of time and space, i.e., whole month chunks can be used as a resolution for the last few years and hundred year chunks can be used as a resolution for more dated temporal layers.
  • a temporal layer for Jan. 11, 1984
  • the layer might be a part of a 1984 chunk in the user's vector.
  • a resolution could be, for example, a country, or an arbitrary-sized rectangle (e.g., selected from a grid-divided Earth).
  • Sweden could be contained in a Sweden chunk, London in a United Kingdom chunk, etc.
  • semantic information can be added as a component in a user vector to help determine recommendations.
  • Semantic information can be provided by, for example, WordNetTM (maintained by Princeton University) or a similar tool. For example, the word “music” has a semantic relationship with the words “jazz” and “rock”, since jazz and rock are both music genres.
  • the set of pictures and positioning information can be used to indirectly determine geographic locations (or at least improve estimates of geographic locations) for placing other types of content (e.g., Web pages) in the virtual world.
  • timestamps included with the positioning information can be used to create temporal layers containing the personalization markers for which the content can be associated. For example, a user could take digital pictures in Central Park, New York City on the dates Jan. 7-9, 2007.
  • the “KML 2.1 reference” document provides sample KML code that can be used in Google EarthTM to form associations or links between content and placemarks.
  • the user can also specify a temporal layer, so that only pictures taken at the location of the placemark on, for example, January 7 are displayed in the viewer.
  • a first user takes a first set of digital pictures M (M 1 . . . M N ) in Central Park, New York City on Jan. 7, 2007. Further assume that the first set of pictures M were taken with a mobile phone camera that adds GPS information to the pictures (e.g., added to a JPEG header). These pictures can be compared with a second set of digital pictures P appearing on a Web page W accessible on the World Wide Web through a browser. The second set of pictures P could be taken by second user on, for example, Jan. 8, 2007.
  • the second set of pictures P could have been captured by a Web crawler and stored in an index (e.g., inverted index) where they can be searched by a search engine (e.g., GoogleTM Search).
  • the search engine could compare the first set of pictures M with the second set of pictures P to determine a match. The comparison could be made using known image processing techniques. If the pictures in P match (or approximately match) the pictures in M, then it can be assumed that the pictures P were taken at the same location as the pictures M. Since the pictures P occur on Web page W, an estimate of the location of where to put the Web page W in the virtual world can be determined.
  • the estimate can be used to better target search queries in a virtual world. For example, a user can submit a query “big moments at Scandinavian rock festivals” and receive results that include Web pages that cover all of Scandinavia. If, however, a first user takes a set of pictures of, e.g., the main stage of a music festival in Scandinavia, those pictures can be compared with pictures taken by a second user, and the results of the comparison can be used to estimate a specific location in Scandinavia for placing the Web pages resulting from the query (i.e., the main stage of the musical festival).
  • content can be associated with personalization markers and automatically included in temporal layers for display in viewers.
  • a user can specify a temporal layer for placemarks in Central Park between the dates of Jan. 7-9, 2007, and the set of pictures M and the Web page W will be attached or otherwise associated (e.g., provide a link to the Web page W) with placemark(s) contained in the specified temporal layer.
  • the disclosed and other embodiments and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
  • the disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, data processing apparatus.
  • the computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more them.
  • data processing apparatus encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers.
  • the apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
  • a propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.
  • a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
  • a computer program does not necessarily correspond to a file in a file system.
  • a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code).
  • a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.
  • the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
  • processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
  • a processor will receive instructions and data from a read-only memory or a random access memory or both.
  • the essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data.
  • a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
  • mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
  • a computer need not have such devices.
  • Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices
  • magnetic disks e.g., internal hard disks or removable disks
  • magneto-optical disks e.g., CD-ROM and DVD-ROM disks.
  • the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
  • the disclosed embodiments can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer.
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • a keyboard and a pointing device e.g., a mouse or a trackball
  • Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • the disclosed embodiments can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of what is disclosed here, or any combination of one or more such back-end, middleware, or front-end components.
  • the components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
  • LAN local area network
  • WAN wide area network
  • the computing system can include clients and servers.
  • a client and server are generally remote from each other and typically interact through a communication network.
  • the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Remote Sensing (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A temporal layer containing personalization markers (e.g., placemarks) created by a user at a given time (or time period), can be combined with map imagery, allowing the user (or other users) to show only the personalization markers contained in the temporal layer. Temporal layers can be of arbitrary temporal or geographical size, fully or partially overlapping in time or space, split into smaller temporal layers, logically aligned or combined and/or continuous or non-continuous in time or space. Temporal layers can be stored in a repository where they can be searched and used by others. Temporal layers can be associated with search services (e.g., news search) or search histories (e.g., automatic temporal layers based on search history). A user's personal profile can be compared with other users' personal profiles and the results of the comparison can be used to recommend temporal layers. Advertisements can be associated with temporal layers.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • This application is a continuation of, and claims priority under 35 U.S.C. § 120 to U.S. patent application Ser. No. 16/803,189, filed on Feb. 27, 2020 and issued as U.S. Pat. No. 11,636,138, which is a continuation of U.S. patent application Ser. No. 14/048,746, filed on Oct. 8, 2013 and issued as U.S. Pat. No. 10,585,920, which is a continuation of U.S. patent application Ser. No. 11/726,085, filed on Mar. 20, 2007 and issued as U.S. Pat. No. 8,584,013. The disclosures of each of these application are incorporated herein by reference in their entireties.
  • TECHNICAL FIELD
  • The subject matter of this application is generally related to online map services.
  • BACKGROUND
  • Personalization markers can be used with online map services (e.g., Google Earth™) to highlight geographic locations in imagery provided by the online map services. Users can add a variety of personalization markers to map imagery, including placemarks (i.e., for highlighting a geographic location), image overlays, paths, polygons (i.e., for selecting a geographic area) and network links (e.g., hyperlinks). These personalization markers can be shared in online communities and other forums, where users can, for example, manually download image overlays containing personalization markers of other users and incorporate the overlay into the current imagery.
  • If a user uses a particular map service for several years, and in several different settings incrementally adds personalization markers, the user's view of the imagery can become “messy” and difficult to use. Additionally, users with similar personalization markers, such as partially geographically overlapping or semantically overlapping (e.g., jazz festivals in Ireland and jazz festivals in Norway) markers, are likely to have a common interest. When online communities grow to tens of millions of users it will become increasingly harder for users to manually find interesting sets of personalization markers in the absence of automated search tools.
  • SUMMARY
  • The deficiencies described above are overcome by the disclosed implementations of a temporal layer containing personalization markers (e.g., placemarks) that can be created by a user for a given time (or time span) and combined with imagery (e.g., map imagery), allowing the user (or other users) to view only the personalization markers contained in the temporal layer. Temporal layers can be of arbitrary temporal or geographical size, fully or partially overlapping in time or space, split into smaller temporal layers, logically aligned or combined and/or continuous or non-continuous in time or space.
  • In some implementations, temporal layers can be stored in a repository where they can be searched and used by others. Temporal layers can be associated with other search services (e.g., news search) or search histories (e.g., automatic temporal layers based on search history). A user's personal profile can be compared with other users' personal profiles, and the results of the comparison can be used to recommend temporal layers. Advertisements can be associated with temporal layers.
  • In some implementations, first content (e.g., a first set of digital images) containing time and position information for a given geographic location can be used to identify second content associated with the same geographic location (e.g., a second set of digital images), so that the second content can be associated with a personalization marker of a temporal layer.
  • In some implementations, a method includes: receiving input specifying a temporal layer containing a personalization marker associated with imagery; and responsive to the input, providing the temporal layer for display on a device.
  • In some implementations, a method includes: generating a personalization marker for presentation on imagery; generating a timestamp for the personalization marker; and associating the personalization marker with a temporal layer using the timestamp.
  • In some implementations, a method includes: receiving a first set of digital images taken at a geographic location, the first set of digital images including information identifying the geographic location; comparing the first set of digital images with a second set of digital images; determining a subset of digital images from the second set of digital images that matches the first set of digital images; and associating the subset of digital images with a personalization marker in a virtual world application at the geographic location.
  • In some implementations, a method includes: specifying a search query; responsive to the search query, receiving imagery and a temporal layer, the temporal layer including information associated with a personalization marker included in the temporal layer; and presenting the imagery and temporal layer including the personalization marker on a display.
  • Other implementations of temporal layer for presenting personalization markers on imagery are disclosed, including implementations directed to systems, methods, apparatuses, computer-readable mediums and user interfaces.
  • DESCRIPTION OF DRAWINGS
  • FIG. 1 is an image of San Francisco generated by the Google Earth™ online map service.
  • FIG. 2 is an image of San Francisco, including a single personalization marker.
  • FIG. 3 is an image of San Francisco, including a set of twenty personalization markers.
  • FIG. 4 illustrates an implementation of a dialog for specifying personalization markers including timestamps.
  • FIG. 5A is an example of a user interface for specifying a temporal layer.
  • FIGS. 5B and 5C are images of San Francisco with and without a temporal layer applied.
  • FIG. 6 is a flow diagram of an example of a temporal layer file generation process.
  • FIG. 7 is a block diagram of an exemplary client/server architecture for delivering temporal layer files to client devices.
  • FIG. 8 is a flow diagram of an example of an ad targeting process using temporal layers.
  • FIG. 9 is a block diagram of an implementation of an ad targeting system for associating advertisements with temporal layers.
  • DETAILED DESCRIPTION
  • Although the text that follows describes a computer-implemented, virtual world program, it should be understood that the disclosed implementations can be applied to any application or service that uses maps or imagery, including search engines (e.g., Google Image Search™) or search services (e.g., news search, image archives), video services, bookmark services, games, etc.
  • Personalization Markers
  • FIG. 1 is an image of San Francisco generated by the Google Earth™ online virtual world program developed by Google, Inc. (Mt. View, California). Google Earth™ maps the Earth by superimposing images obtained from satellite imagery, aerial photography and a Geographic Information System (GIS) over a three-dimensional (3D) virtual globe. At an “eye” altitude of 15.97 miles, the image shown in FIG. 1 is fairly easy to view even though the image includes a number of default markers for providing information and highlighting points of interest.
  • Some virtual world applications (e.g., Google Earth™) allow users to add “personalization markers” to imagery to designate points of interest and/or to provide information or content. “Personalization markers” can include but are not limited to: placemarks, image overlays, paths, a polygon (e.g., for selecting a geographic area) and network links (e.g., hyperlinks), etc. For example, Google Earth™ provides “placemarks,” which are markers (e.g., represented by “pushpin” icons) overlaid onto imagery at user-selected locations. Placemarks can be clicked or otherwise interacted with by the user to display information and/or content (e.g., digital photos) related to the location. A suitable virtual navigation tool can be used to position a placemark in the image. A dialog box or other user interface element can be used to set properties of the placemark, including, for example, a name, description, color, scale, opacity, view, altitude, etc. Placemarks created by users can be shared with other users in an online Web community, such as “The Google Earth Community.”
  • The examples used throughout this specification will refer to placemarks rather than personalization markers. The disclosed implementations, however, apply to all types of personalization markers as that term is defined herein.
  • FIG. 2 is a satellite image of San Francisco, including a single placemark 202 represented by a “pushpin” icon. As can be observed, the image is uncluttered and generally easy to read. However, if a user incrementally adds placemarks to the image over time, the image can become cluttered. For example, in FIG. 3 an image of San Francisco includes a set of twenty placemarks 302 created over a time span of several days. The placemarks 302 are labeled 1-20 for convenience. Many of the icons representing placemarks are overlapping which makes the image appear cluttered. Moreover, the close proximity of the icons makes it difficult for a user to select a particular placemark using a mouse or other pointing device.
  • To clean up the image, the user could manually remove placemarks one by one. For example, Google Earth™ allows the user to remove a placemark from the image by unchecking a box associated with the placemark located in a side panel of the Google Earth™ user interface. Although this method may work for a small number of placemarks, it can become tedious and time consuming if the user wants to remove several hundred placemarks.
  • Specifying Personalization Markers with Timestamps
  • FIG. 4 is an example of a dialog 400 for specifying personalization markers with timestamps. In some implementations, the dialog 400 includes text boxes 402 for specifying various parameters for a placemark.
  • In the example shown, a first text box 402 a is used for specifying a name for a placemark. The text entered into box 402 a can be displayed in the image proximate to a representative icon for the placemark. Text boxes 402 b and 402 c are used to specify the coordinates (e.g., latitude and longitude) of the placemark, respectively. In some implementations, these parameters can also be specified graphically using, for example, a suitable virtual navigation tool. Text boxes 402 d and 402 e are used to specify a timestamp (e.g., date and time) associated with the creation of the placemark. In some implementations, the text boxes 402 d and 402 e can include the current date and time as default values.
  • In some implementations, a personalized marker can be associated with a time span (e.g., a historic battle lasting for a few days), which can be later added into a temporal layer. The time span could be delineated by a stop and start timestamp. To associate personalized markers with time spans, the dialog 400 can be extended, for example, to include one or more text boxes and/or other user interface elements for entering start and stop timestamps for the time span. If a temporal layer corresponding to the time span or timestamp is not available, a new temporal layer can be created for the time span or timestamp, and the personalization marker can be added to the new temporal layer.
  • Text box 402 f is used to provide a description that will be displayed when a user selects the personalization marker by clicking or otherwise interacting with the icon representing the personalization marker.
  • The dialog 400 described above is one example of a dialog that can be used to specify a timestamp for a placemark. Other methods or mechanisms for specifying timestamps for personalization markers in general can include, but are not limited to: tool bars, menus, graphical tools, etc. Any numbers or types of parameters for personalization markers can be specified by a user depending on the application. For example, the dialog 400 can include a button 402 g, which when clicked by a user, provides a second or extended dialog for allowing the user to attach or associate information or content (e.g., digital photos, digital video, a .pdf) to a personalization marker. In some implementations, timestamps and other parameters can be specified programmatically without user intervention, or can be provided by an external resource (e.g., GPS receiver, network server).
  • Temporal Layer Specification
  • Once the personalization markers have been associated with timestamps (e.g., using dialog 400), they can be aggregated into temporal layers, which can be overlaid on an image. A “temporal layer” as used herein is an image overlay or software layer that includes a set of personalization markers that have timestamps that fall within a time span. Temporal layers can be of arbitrary temporal or geographical size, fully or partially overlapping in time or space, split into smaller temporal layers, logically aligned or combined and/or continuous or non-continuous in time or space. Temporal layers can be stored in a repository where they can be searched and used by others. Temporal layers can be associated with search services (e.g., news search) or search histories (e.g., automated temporal layers based on search history). A user's personal profile can be compared with other users' personal profiles (e.g., other users having similar interests to the user) and the results of the comparison can be used to recommend temporal layers to the user. Advertisements can be associated with temporal layers for ad targeting purposes.
  • In some implementations, temporal layers can be specified using Extensible Markup Language (XML) grammar. In Google Earth™, for example, Keyhole Markup Language (KML) is used to specify placemarks and dynamically fetch and update KML files from a KML server. KML is an XML grammar and file format for modeling and storing geographic features such as points, lines, images and polygons for display in the Google Earth™ 3D viewer. In some implementations, a placemark can be specified using a KML file. The Google Earth™ client can render the KML file and display the placemark over the current image. For example, an exemplary KML file for creating a placemark over an image can include the following KML statements:
  • <?xml version= “1.0” encoding= “UTF-8”?>
    kml xmlns=″http://earth.google.com/kml/2.0″>
    <Placemark>
      <description>Tethered to the ground by a customizable
      tail</description>
      <name>My Favorite Place</name>
      <LookAt>
       <longitude>−122.2739</longitude>
       <latitude>37.4221</latitude>
       <range>540.68</range>
       <tilt>0</tilt>
       <heading>3</heading>
      </LookAt>
    <visibility>0</visibility>
    <Style>
        <IconStyle>
          <Icon>
            <href>root://iocns/palette-3.png</href>
            <x>96</x>
            <y>160</y>
            <w>32</w>
            <h>32</h>
          </Icon>
         </IconStyle>
    </Style>
     <Point>
       <extrude>1</extrude>
       <altitudeMode>relativeToGround</altitudeMode>
       <coordinates>−122.2739,37.4221,0</coordinates>
     </Point>
    <Timestamp>
       <when>2007-01-07T2:00:00+00:00</when>
    </Timestamp>
    </Placemark>
    </kml>
  • The KML file described above includes (reading the file from top to bottom) an XML header, a KML namespace declaration, the placemark's description, the placemark's name, a camera view for the placemark, a default visibility for the placemark (in this case, it has to be switched on by the user), a style for the placemark, detailing where the image is located, a switch for whether or not the placemark is to be extruded (yes), the type of altitude mode the placemark should use, the position of the placemark on the Earth's surface and the timestamp for the placemark.
  • In some implementations, the KML file can be created by a client device and sent to a KML server, which can store the KML file in a repository. In the KML file shown, the <TimeStamp> element has the syntax dateTime(YYYY-MM-DDThh:mm:sszzzzzz). This syntax includes a date field, a local time field and a field for a plus or minus conversion to Universal Time Coordinated (UTC). The <TimeStamp> element allows for the creation of temporal layers as described in reference to FIGS. 6 and 7 . Further detail on using KML to perform custom applications can be found in the “KML 2.1 reference” document, which is incorporated by reference herein in its entirety. The “KML 2.1 reference” document is publicly available from Google, Inc., and includes samples of KML that can be used to implement temporal layers.
  • FIG. 5A is an example of a dialog 500 for specifying a temporal layer. In some implementations, the dialog 500 includes a checkbox 502, text boxes 504, 506, 508, 510 and a search box 512. In the example shown, it is assumed that placemarks spanning the world have been created and uploaded to a virtual world application, such as Google Earth™.
  • Using the text box 504, the user can select one or more temporal layers from a list of available temporal layers. In some implementations, the temporal layers can be organized into hierarchical folders based on hemispheres, regions, continents, states, cities, towns or any other suitable delineation. A user can select a desired temporal layer by highlighting the description in the list. In the example shown, the user has selected San Francisco.
  • In some implementations, a user can logically align and join multiple temporal layers by highlighting the desired temporal layers in the list (e.g., holding the shift key down while selecting) and checking the check box 502. For example, the Roman Empire can be built from several temporal layers that cover different geographical areas (e.g., from individual empires time period) or landscape that changes over time.
  • In some implementations, multiple temporal layers can be selected that are non-continuous in time and space by highlighting the desired temporal layers in the list and leaving the check box 502 unchecked. For example, a temporal layer that includes a “Winter Olympics” time period will show personalization markers for different places on the Earth but with different timestamps (e.g., a few week periods every 4 years.).
  • In some implementations, the text boxes 506 a and 506 b allow the user to specify a date range for one or more temporal layers. In the example shown, the user has specified a date range of Jan. 7, 2007 through Jan. 9, 2007 for the temporal layer covering San Francisco. In some implementations, the user can specify different date ranges for different temporal layers.
  • In some implementations, the text boxes 508 a and 508 b allow the user to specify a time range for one or more temporal layers. In the example shown, the user has not specified a particular time range. This can result in personalization markers having timestamps within the specified date range to be included in the temporal layer.
  • In some implementations, the text box 510 allows the user to specify a geographical area (e.g., in square miles) for one or more temporal layers. In the example shown, the user has selected a geographic area of 10 square miles for the temporal layer covering San Francisco between the dates Jan. 7-9, 2007.
  • Spatial/Temporal Boundaries of Shared Temporal Layers
  • As previously discussed, users can specify temporal layers and share the temporal layers with other users in, for example, an online community. Users of the online community may have different opinions about how to specify a spatial or temporal boundary of a temporal layer. For example, in a “social” temporal layer a user may create a placemark that includes text of the user's opinion about a historical event associated with a particular time span and geographic location (e.g., the time span of the Viking period or the geographical span of the Roman Empire). In some implementations, differing opinions among users about the time span and geographic location of a historical event can be resolved by computing, for example, a median or average temporal and/or spatial boundary for the temporal layer. The median or average temporal and/or spatial boundary can be computed from statistical distribution information derived from various opinions presented in the online community or elsewhere (e.g., from academia). Temporal layers having statistical temporal and/or spatial boundaries can be displayed with embellishments (e.g., thicker lines, colored lines) to differentiate from temporal layers having deterministic boundaries.
  • In some implementations, some users can have more authority than other users in an online community. This authority can be earned by, for example, adding many previous temporal layers to the online community that are close to the median or average temporal layer and/or by being favored by other users or peers (e.g., the user is a famous scholar). When a temporal layer is selected for display, the personalization marker of an authority user can be highlighted (or otherwise modified) to visually distinguish the authority user's personalization marker from other personalization markers.
  • FIGS. 5B and 5C are satellite images of San Francisco with and without a temporal layer covering San Francisco between the dates Jan. 7-9, 2007. As can be observed in FIG. 5B, the larger number of “pushpin” icons representing placemarks have cluttered the image, making the selection of a particular placemark difficult. As shown in FIG. 5C, when the temporal layer is applied to the image, only placemarks for the dates Jan. 7-9, 2007 are shown, resulting in an image with improved readability and usability. Thus, the temporal layer acts a time-based filter for filtering out personalization markers that do not meet the specified filter criteria.
  • Searching for Temporal Layers
  • Users with similar personalization markers (e.g., partially overlapping or semantically overlapping) are likely to have some common interests. With online communities that have millions of users it becomes increasingly difficult for users to manually find interesting sets of personalization markers. To solve this problem, in some implementations, the search box 512 in dialog 500 allows a user to search for temporal layers using search queries. In the example shown, the user can enter a search query in the text box 512 and click the search button to start a search. In some implementations, a search engine receives the query, parses out query terms, then uses the query terms with an index (e.g., an inverted index) to access a repository of personalization markers. For example, the user could enter the search query “winter olympics” to find temporal layers including personalization markers having timestamps that are contained in the time span of the Winter Olympics. In some implementations, a user can indirectly search for temporal layers by searching for something that is frequently associated with a time period (or region). When searching for temporal layers related to, for example, Elvis Presley, several time periods during his career and life may be presented in the search results. For example, the search query “Elvis in the military” may return one or more temporal layers with a date range of the 1960s that includes one or more placemarks for a geographic region spanning Germany. Such indirect search-based selection can be implemented, for example, using clustering technology or other information extraction technologies, as described in reference to FIG. 9 .
  • The dialog 500 is one example of the many ways a user can specify parameters for creating a temporal layer. Other methods are possible. For example, rather than a dialog (or in addition to a dialog), the user can be allowed to specify parameters using an embedded navigation control or other user interface element. A set of wheels or sliders with variable granularity jumps can be used to search through a repository of temporal layers. In some implementations, the embedded navigation control shown in FIG. 5B can be augmented with additional controls (e.g., additional wheels, sliders or buttons) or operate in two modes: one mode for navigating temporal layers and another mode for navigating imagery. In some implementations, temporal layers are specified automatically or programmatically without user intervention by, for example, an application, utility or operating system.
  • Temporal Layer File Generation Process
  • FIG. 6 is a flow diagram of an example of a temporal layer file generation/rendering process 600. In some implementations, a virtual world application running on a client device allows a user to navigate a virtual world (e.g., Google Earth™, Microsoft® Virtual Earth™). The process 600, however, is not limited to virtual world applications but can be used with any application that uses maps or imagery. The client device can be any device capable of displaying maps or imagery, including but not limited to: computers, mobile phones, media player/recorders, television set-top boxes, game consoles, navigation systems, personal digital assistants (PDA), email devices, electronic tablets, consumer electronic devices).
  • In some implementations, the client device communicates with a server over a network connection (e.g., the Internet, Ethernet, a wireless network). The server receives a request for a temporal layer from the client device (602). The request can include temporal layer specification data and viewer coordinates. The viewer coordinates determine the geographic location on Earth that the user is currently viewing or would like to navigate or “fly” to. Temporal layer specification data can include any information that can be used to create a temporal layer, including a date range, a time range, a geographic area, coordinates for personalization markers, etc. The server uses the viewer coordinates and/or the temporal layer specification data to generate one or more temporal layer files (604). In some implementations, the generation of a temporal layer file includes retrieving time stamped personalization markers from a repository, as described in reference to FIG. 7 . The temporal layer file is sent to the client device (606). The client device renders the temporal layer file for presentation in a viewer (608).
  • In some implementations, the temporal layer file is a KML file that is generated by a KML server and sent to a client device to be rendered and presented to a user in a viewer (e.g. the Google Earth™ 3D viewer). In other implementations, the temporal layer file is a KML file that is generated by the client device using temporal layer specification data (e.g., placemark coordinates) received from the server. A script language (e.g., Python™ scripting language) can be called from the KML file and used to render the placemarks of the temporal layer. In some implementations, the KML file includes a network link that loads the script. The script can include one or more loops for extracting latitude and longitude values from, for example, an array of latitude and longitude values for placemarks contained in the temporal layer. The latitude and longitude values can be inserted in a <coordinates> element of a <Point> for generating KML that can be rendered and presented in the 3D viewer. In some implementations, whenever, a request for a temporal layer is received from a client device, or in response to a trigger event (e.g., a network link refresh), the script can generate new KML using the latitude and longitude values. Some example scripts for implementing the procedures described above can be found in the “KML 2.1 reference” document previously referenced herein.
  • Client/Server Architecture for Temporal Layers
  • FIG. 7 is a block diagram of an implementation of a client/server architecture 700 configured for delivering map imagery and one or more temporal layer files to client devices 704 through a network 702 (e.g., the Internet, Ethernet, wireless network). In some implementations, the client/sever architecture 700 includes a map server 706, a temporal layer data repository 708 and a map data repository 710.
  • In some implementations, client devices 704 send requests for refresh imagery and/or temporal layer files to the map server 706. The requests can include temporal layer specification data for specifying how a temporal layer will be generated by the map server 706. Examples of temporal layer specification data include date and time range data, geographical area, current view coordinates, content and any other data that can be used to create a temporal layer.
  • In some implementations, the temporal layer specification data is used by an index server (not shown) to retrieve placemarks stored in a repository 708 (e.g., a MySQL® database). For example, placemarks covering San Francisco that fall within the date range of Jan. 7-9, 2007, can be retrieved by the index server and sent to the map server 706. In some implementations, the map server 706 creates one or more temporal layer files (e.g., KML files) containing instructions and/or scripts that can be interpreted by a viewer running on the client device and used to render the temporal layer over imagery. In some implementations, the map server 706 can also provide the client device with refresh imagery retrieved from the map data repository 710.
  • Ad Targeting Process Using Temporal Layers
  • FIG. 8 is a flow diagram of an example of an ad targeting process 800 using temporal layers. In some implementations, a client device allows a user to navigate a virtual world application (e.g., Google Earth™, Microsoft® Virtual Earth™). The process 800, however, is not limited to virtual world applications but can be used with any application that uses maps or imagery.
  • In the example shown, the process 800 begins when an ad request is received from a client device (802). The request can include viewer coordinates and temporal layer specification data. Ad context can be determined from the viewer coordinates, temporal layer specification data and/or content associated with a personalization marker (804). Such data can be provided in, for example, a KML file. For example, if the user is viewing an image of San Francisco with a temporal layer containing placemarks spanning Jan. 7-9, 2007, then the viewer coordinates for those placemarks (e.g., described in a KML placemark file) and/or the specified date range can be used to define a context for which ads can be targeted. Additionally, the name of the placemark and any content associated with the placemark (e.g., text, digital imagers, video) can be used to determine context. For example, placemark names and/or descriptions can be analyzed for keywords or themes using a clustering technology. An example of clustering technology is described in U.S. Provisional Patent Application No. 60/416,144, for “Methods and Apparatus for Probabilistic Hierarchical Inferential Learner,” filed Oct. 3, 2002, which application is incorporated by reference herein in its entirety.
  • In some implementations, a location of interest to a user can be determined from viewer coordinates for a placemark, temporal layer specification data and/or content (806). The targeted ads could be related to, for example, businesses operating in the geographic location represented by a placemark or other personalization marker, as determined by the viewer coordinates. Temporal layer specification data can include a geographic area of interest (See FIG. 5A), which could be used to determine a boundary around a location of interest. The name of the placemark or associated content can also provide clues on location. For example, Global Positioning System (GPS) information included with digital images could be used to determine a location of interest to a user.
  • In some implementations, temporal layer specification data can be used to target ads to a specified time period. For example, an antique dealer can advertise antiques for a specified time period, or a music or video download service can advertise audio or video content for a specified time period.
  • In some implementations, the process 800 determines one or more ads for presenting on a client device based on the ad context and/or location of interest (808). For example, an online ad targeting system (e.g., Google AdSense™) can match ad inventory to ad context and/or location of interest. The ads are sent to the client device (810) where the ads are rendered for presentation in a viewer (812).
  • Ad Targeting System Architecture Using Temporal Layers
  • FIG. 9 is a block diagram of an example of an ad targeting system for including advertisements to temporal layers. In some implementations, the system 900 includes an ad server 904, a context server 908, a map server 912, an ad repository 916, a map repository 914 and a temporal layer data repository 915.
  • In some implementations, the system 900 is operationally coupled to one or more devices 902 through a network 906 (e.g., the Internet, Ethernet, wireless network). In some implementations, a client device 902 includes a computer-readable medium 920 for storing a map client 922 (e.g., Google Earth™ client) and an operating system 924. The client device 902 also includes one or more processors 918, which can be configured to execute instructions for performing various operations for the map client 922 and/or operating system 924.
  • In some implementations, ad requests (including viewer coordinates and temporal layer specification (TLS) data) are sent by the client device 902 to the ad server 904 through the network 906. The viewer coordinates and TLS data are sent to the context server 908, which uses, for example, clustering technology to determine a context for ad targeting. For example, if the viewing coordinates define a point in San Francisco, the ads can be targeted to San Francisco. If the TLS data includes content (text description, digital images), then the content can also be analyzed to determine an ad context. A description of the ad context is sent back to the ad server 904, which forwards the ad context description, together with the viewer coordinates, to the ad repository 916. In some implementations, a database manager (not shown) uses the ad context description and viewer coordinates to select one or more ads from an ad inventory that are related to the ad context and location specified by the viewer coordinates. Ads from the repository 916 are sent to the ad server 904, which sends the ads to the client device 902 through the network 906.
  • Collaborative Filtering/Recommendation Engine
  • In some implementations, temporal layer files can be made available to other users over a network. For example, users can create temporal layer files and share them with other users. A repository of temporal layer files can be coupled to a search engine that allows users to enter queries, such as the search feature described in reference to FIG. 5A. In some implementations, a collaborative filter or recommendation engine can use the query terms to filter out temporal layer files that may be of interest to a user. The user can then be presented with a list of recommendations for temporal layers.
  • In some implementations, user profiles can be compared to provide recommendations based on, for example, dissimilarities from similar users. In some implementations, user profiles can be represented as vectors in n-space, where each vector component can be a user characteristic. The vectors can be then compared to each other using known mathematically techniques (e.g., Euclidean distance measure) to determine similarity between user profiles.
  • In some implementations, a recommendation engine can include a data structure for comparing personalization markers, temporal layers or users. For comparing users, a user vector can have vector components that include, for example: i) personalization markers created (together with their time and position), ii) temporal layers created (with positions/areas and time spans) and iii) temporal layers and personalization markers viewed/visited. To facilitate the comparison of user vectors, the vector components can be created in chunks of time and space, i.e., whole month chunks can be used as a resolution for the last few years and hundred year chunks can be used as a resolution for more dated temporal layers.
  • For example, if a user specifies a temporal layer for Jan. 11, 1984, the layer might be a part of a 1984 chunk in the user's vector. For spatial information, a resolution could be, for example, a country, or an arbitrary-sized rectangle (e.g., selected from a grid-divided Earth). For example, Stockholm Sweden could be contained in a Sweden chunk, London in a United Kingdom chunk, etc. If a first user has a user vector with, for example, the one-year chunks Sweden, UK and Brazil in 1984, and a second user has a user vector with, for example, the one-year chunks Sweden, Brazil, Ireland in 1983, the first user could be recommended to look into an “Ireland 1983” temporal layer, and the second user could be recommended to look into a “UK 1984” temporal layer. In some implementations, semantic information can be added as a component in a user vector to help determine recommendations. Semantic information can be provided by, for example, WordNet™ (maintained by Princeton University) or a similar tool. For example, the word “music” has a semantic relationship with the words “jazz” and “rock”, since jazz and rock are both music genres.
  • Improved Placement of Web Pages in Virtual World
  • When users take digital pictures with positioning information (e.g., GPS) attached to the pictures, and upload the pictures to a virtual world application (e.g., Google Earth™), the set of pictures and positioning information can be used to indirectly determine geographic locations (or at least improve estimates of geographic locations) for placing other types of content (e.g., Web pages) in the virtual world. In some implementations, timestamps included with the positioning information can be used to create temporal layers containing the personalization markers for which the content can be associated. For example, a user could take digital pictures in Central Park, New York City on the dates Jan. 7-9, 2007. The user could then upload the pictures to a virtual world application where the pictures can be manually or automatically associated or linked with one or more temporal layers or individual personalization markers (e.g., placemarks). The “KML 2.1 reference” document provides sample KML code that can be used in Google Earth™ to form associations or links between content and placemarks. The user can also specify a temporal layer, so that only pictures taken at the location of the placemark on, for example, January 7 are displayed in the viewer.
  • The foregoing concept can be further explained by the following example. Assume, that a first user takes a first set of digital pictures M (M1 . . . MN) in Central Park, New York City on Jan. 7, 2007. Further assume that the first set of pictures M were taken with a mobile phone camera that adds GPS information to the pictures (e.g., added to a JPEG header). These pictures can be compared with a second set of digital pictures P appearing on a Web page W accessible on the World Wide Web through a browser. The second set of pictures P could be taken by second user on, for example, Jan. 8, 2007. The second set of pictures P could have been captured by a Web crawler and stored in an index (e.g., inverted index) where they can be searched by a search engine (e.g., Google™ Search). The search engine could compare the first set of pictures M with the second set of pictures P to determine a match. The comparison could be made using known image processing techniques. If the pictures in P match (or approximately match) the pictures in M, then it can be assumed that the pictures P were taken at the same location as the pictures M. Since the pictures P occur on Web page W, an estimate of the location of where to put the Web page W in the virtual world can be determined.
  • In some implementations, the estimate can be used to better target search queries in a virtual world. For example, a user can submit a query “big moments at Scandinavian rock festivals” and receive results that include Web pages that cover all of Scandinavia. If, however, a first user takes a set of pictures of, e.g., the main stage of a music festival in Scandinavia, those pictures can be compared with pictures taken by a second user, and the results of the comparison can be used to estimate a specific location in Scandinavia for placing the Web pages resulting from the query (i.e., the main stage of the musical festival).
  • Thus, content can be associated with personalization markers and automatically included in temporal layers for display in viewers. For example, a user can specify a temporal layer for placemarks in Central Park between the dates of Jan. 7-9, 2007, and the set of pictures M and the Web page W will be attached or otherwise associated (e.g., provide a link to the Web page W) with placemark(s) contained in the specified temporal layer.
  • The disclosed and other embodiments and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more them. The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.
  • A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
  • Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
  • To provide for interaction with a user, the disclosed embodiments can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • The disclosed embodiments can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of what is disclosed here, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
  • The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
  • While this specification contains many specifics, these should not be construed as limitations on the scope of what being claims or of what may be claimed, but rather as descriptions of features specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.
  • Similarly, while operations are depicted in the drawings in a particular order, this should not be understand as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
  • Various modifications may be made to the disclosed implementations and still be within the scope of the following claims.

Claims (21)

1-33. (canceled)
34. A computer-implemented method, comprising:
receiving, by a mobile computing device comprising one or more processor devices, information indicative of a requested time period and a particular Point of Interest (POI), wherein the requested time period comprises a start time and an end time, and wherein at least the start time is prior to a time at which the information indicative of the requested time period is received;
based on the requested time period, retrieving, by the mobile computing device from a server computing system, a personalization marker associated with the particular POI, wherein the personalization marker comprises content associated with the particular POI that was previously provided to the server computing system within the requested time period; and
causing, by the mobile computing device via a display device associated with the mobile computing device, display of an interface element overlaying imagery associated with the particular POI, wherein the interface element is indicative of the content associated with the particular POI.
35. The computer-implemented method of claim 34, wherein retrieving the personalization marker comprises obtaining, by the mobile computing device from the server computing system, a digital image taken at the particular POI within the requested time period.
36. The computer-implemented method of claim 34, wherein retrieving the personalization marker comprises obtaining, by the mobile computing device from the server computing system, a hyperlink associated with the particular POI that was previously provided to the server computing system within the requested time period.
37. The computer-implemented method of claim 34, wherein retrieving the personalization marker comprises obtaining, by the mobile computing device from the server computing system, video data associated with the particular POI that was previously provided to the server computing system within the requested time period.
38. The computer-implemented method of claim 34, wherein retrieving the personalization marker comprises obtaining, by the mobile computing device from the server computing system, a document associated with the particular POI that was previously provided to the server computing system within the requested time period.
39. The computer-implemented method of claim 34, wherein retrieving the personalization marker comprises obtaining, by the mobile computing device from the server computing system, audio data associated with the particular POI that was previously provided to the server computing system within the requested time period.
40. The computer-implemented method of claim 34, wherein retrieving the personalization marker associated with the particular POI further comprises:
based on the requested time period, retrieving, by the mobile computing device from the server computing system, advertising content associated with either (a) the particular POI or (b) the requested time period.
41. The computer-implemented method of claim 40, wherein causing the display of the interface element overlaying imagery associated with the particular POI further comprises:
causing, by the mobile computing device via the display device associated with the mobile computing device, display of a second interface element overlaying the imagery associated with the particular POI, wherein the second interface element is indicative of the advertising content.
42. The computer-implemented method of claim 34, wherein the server computing system comprises a map server for an online map service.
43. A computing device, comprising:
a processor device; and
a non-transitory computer-readable medium having instructions stored thereon that, when executed by the processor device, cause performance of operations comprising:
receiving information indicative of a requested time period and a particular Point of Interest (POI), wherein the requested time period comprises a start time and an end time, and wherein at least the start time is prior to a time at which the information indicative of the requested time period is received;
based on the requested time period, retrieving, from a server computing system, a personalization marker associated with the particular POI, wherein the personalization marker comprises content associated with the particular POI that was previously provided to the server computing system within the requested time period; and
causing, via a display device associated with the computing device, display of an interface element overlaying imagery associated with the particular POI, wherein the interface element is indicative of the content associated with the particular POI.
44. The computing device of claim 43, wherein retrieving the personalization marker comprises obtaining, from the server computing system, a digital image taken at the particular POI within the requested time period.
45. The computing device of claim 43, wherein retrieving the personalization marker comprises obtaining, from the server computing system, a hyperlink associated with the particular POI that was previously provided to the server computing system within the requested time period.
46. The computing device of claim 43, wherein retrieving the personalization marker comprises obtaining, from the server computing system, video data associated with the particular POI that was previously provided to the server computing system within the requested time period.
47. The computing device of claim 43, wherein retrieving the personalization marker comprises obtaining, from the server computing system, a document associated with the particular POI that was previously provided to the server computing system within the requested time period.
48. The computing device of claim 43, wherein retrieving the personalization marker comprises obtaining, from the server computing system, audio data associated with the particular POI that was previously provided to the server computing system within the requested time period.
49. The computing device of claim 43, wherein retrieving the personalization marker associated with the particular POI further comprises:
based on the requested time period, retrieving, by the computing device from the server computing system, advertising content associated with either (a) the particular POI or (b) the requested time period.
50. The computing device of claim 49, wherein causing the display of the interface element overlaying imagery associated with the particular POI further comprises:
causing, via the display device associated with the computing device, display of a second interface element overlaying the imagery associated with the particular POI, wherein the second interface element is indicative of the advertising content.
51. The computing device of claim 43, wherein the server computing system comprises a map server for an online map service.
52. A non-transitory computer-readable medium having instructions stored thereon that, when executed by a processor of a computing device, cause performance of operations comprising:
receiving information indicative of a requested time period and a particular Point of Interest (POI), wherein the requested time period comprises a start time and an end time, and wherein at least the start time is prior to a time at which the information indicative of the requested time period is received;
based on the requested time period, retrieving, from a server computing system, a personalization marker associated with the particular POI, wherein the personalization marker comprises content associated with the particular POI that was previously provided to the server computing system within the requested time period; and
causing, via a display device associated with the computing device, display of an interface element overlaying imagery associated with the particular POI, wherein the interface element is indicative of the content associated with the particular POI.
53. The non-transitory computer-readable medium of claim 52, wherein retrieving the personalization marker comprises obtaining, from the server computing system, a digital image taken at the particular POI within the requested time period.
US18/137,256 2007-03-20 2023-04-20 Temporal Layers for Presenting Personalization Markers on Imagery Abandoned US20230376511A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/137,256 US20230376511A1 (en) 2007-03-20 2023-04-20 Temporal Layers for Presenting Personalization Markers on Imagery

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/726,085 US8584013B1 (en) 2007-03-20 2007-03-20 Temporal layers for presenting personalization markers on imagery
US14/048,746 US10585920B2 (en) 2007-03-20 2013-10-08 Temporal layers for presenting personalization markers on imagery
US16/803,189 US11636138B1 (en) 2007-03-20 2020-02-27 Temporal layers for presenting personalization markers on imagery
US18/137,256 US20230376511A1 (en) 2007-03-20 2023-04-20 Temporal Layers for Presenting Personalization Markers on Imagery

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US16/803,189 Continuation US11636138B1 (en) 2007-03-20 2020-02-27 Temporal layers for presenting personalization markers on imagery

Publications (1)

Publication Number Publication Date
US20230376511A1 true US20230376511A1 (en) 2023-11-23

Family

ID=49518194

Family Applications (4)

Application Number Title Priority Date Filing Date
US11/726,085 Expired - Fee Related US8584013B1 (en) 2007-03-20 2007-03-20 Temporal layers for presenting personalization markers on imagery
US14/048,746 Active 2030-06-04 US10585920B2 (en) 2007-03-20 2013-10-08 Temporal layers for presenting personalization markers on imagery
US16/803,189 Active 2027-07-21 US11636138B1 (en) 2007-03-20 2020-02-27 Temporal layers for presenting personalization markers on imagery
US18/137,256 Abandoned US20230376511A1 (en) 2007-03-20 2023-04-20 Temporal Layers for Presenting Personalization Markers on Imagery

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US11/726,085 Expired - Fee Related US8584013B1 (en) 2007-03-20 2007-03-20 Temporal layers for presenting personalization markers on imagery
US14/048,746 Active 2030-06-04 US10585920B2 (en) 2007-03-20 2013-10-08 Temporal layers for presenting personalization markers on imagery
US16/803,189 Active 2027-07-21 US11636138B1 (en) 2007-03-20 2020-02-27 Temporal layers for presenting personalization markers on imagery

Country Status (1)

Country Link
US (4) US8584013B1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2462460C (en) * 2008-08-06 2015-07-29 Statoilhydro Asa Interactive rendering of physical entities
US20100146114A1 (en) * 2008-12-04 2010-06-10 Morris Robert P Methods, Systems, And Computer Program Products For Accessing A Resource Based On Metadata Associated With A Location On A Map
US20100145602A1 (en) * 2008-12-04 2010-06-10 Morris Robert P Methods, Systems, And Computer Program Products For Associating Resources Of A First Geospace With A Second Geospace
US8918388B1 (en) * 2010-02-26 2014-12-23 Turn Inc. Custom data warehouse on top of mapreduce
US9037402B2 (en) * 2012-07-26 2015-05-19 Four Winds Interactive, LLC System and method for programming and displaying directionally based textual wayfinding content
US20140046923A1 (en) 2012-08-10 2014-02-13 Microsoft Corporation Generating queries based upon data points in a spreadsheet application
US20150113470A1 (en) * 2013-10-18 2015-04-23 Cisco Technology, Inc. Adjustable progressive disclosure of structured data
CN110168466B (en) 2017-11-16 2022-05-24 南京泉峰科技有限公司 Intelligent mowing system
CN114003677B (en) * 2021-11-03 2025-03-18 吉旗(成都)科技有限公司 Label generation method, device, electronic device and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542812B1 (en) * 1999-10-19 2003-04-01 American Calcar Inc. Technique for effective navigation based on user preferences
US20050108644A1 (en) * 2003-11-17 2005-05-19 Nokia Corporation Media diary incorporating media and timeline views
US20060241860A1 (en) * 2005-04-21 2006-10-26 Microsoft Corporation Virtual earth mapping
US20070011150A1 (en) * 2005-06-28 2007-01-11 Metacarta, Inc. User Interface For Geographic Search
US20070291323A1 (en) * 2006-06-14 2007-12-20 Ranald Gabriel Roncal Internet-based synchronized imaging
US8786469B2 (en) * 2003-02-14 2014-07-22 Telecommunications Systems, Inc. Method and system for saving and retrieving spatial related information

Family Cites Families (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379215A (en) * 1991-02-25 1995-01-03 Douglas P. Kruhoeffer Method for creating a 3-D image of terrain and associated weather
US5948040A (en) * 1994-06-24 1999-09-07 Delorme Publishing Co. Travel reservation information and planning system
US6134532A (en) * 1997-11-14 2000-10-17 Aptex Software, Inc. System and method for optimal adaptive matching of users to most relevant entity and information in real-time
US6356283B1 (en) * 1997-11-26 2002-03-12 Mgi Software Corporation Method and system for HTML-driven interactive image client
JP3548459B2 (en) * 1998-11-20 2004-07-28 富士通株式会社 Guide information presenting apparatus, guide information presenting processing method, recording medium recording guide information presenting program, guide script generating apparatus, guide information providing apparatus, guide information providing method, and guide information providing program recording medium
US6504571B1 (en) * 1998-05-18 2003-01-07 International Business Machines Corporation System and methods for querying digital image archives using recorded parameters
JP2000010472A (en) * 1998-06-25 2000-01-14 Zenrin Co Ltd Map display device and method
US6654735B1 (en) * 1999-01-08 2003-11-25 International Business Machines Corporation Outbound information analysis for generating user interest profiles and improving user productivity
US6647409B1 (en) * 1999-07-13 2003-11-11 Microsoft Corporation Maintaining a sliding view of server based data on a handheld personal computer
US6813395B1 (en) * 1999-07-14 2004-11-02 Fuji Photo Film Co., Ltd. Image searching method and image processing method
US8397177B2 (en) * 1999-07-22 2013-03-12 Tavusi Data Solutions Llc Graphic-information flow method and system for visually analyzing patterns and relationships
EP1072987A1 (en) * 1999-07-29 2001-01-31 International Business Machines Corporation Geographic web browser and iconic hyperlink cartography
US7072863B1 (en) * 1999-09-08 2006-07-04 C4Cast.Com, Inc. Forecasting using interpolation modeling
JP2001116565A (en) * 1999-10-15 2001-04-27 Yazaki Corp In-vehicle navigation device and recording medium recording processing program in in-vehicle navigation device
US7822629B2 (en) * 1999-12-15 2010-10-26 Hewlett-Packard Development Company, L.P. Customer profiling apparatus for conducting customer behavior pattern analysis, and method for comparing customer behavior patterns
AU2001230955A1 (en) * 2000-01-18 2001-07-31 Richard Liming System and method providing a spatial location context
US20020029226A1 (en) * 2000-09-05 2002-03-07 Gang Li Method for combining data with maps
US6618593B1 (en) * 2000-09-08 2003-09-09 Rovingradar, Inc. Location dependent user matching system
US20020198882A1 (en) * 2001-03-29 2002-12-26 Linden Gregory D. Content personalization based on actions performed during a current browsing session
US7068309B2 (en) * 2001-10-09 2006-06-27 Microsoft Corp. Image exchange with image annotation
US7225207B1 (en) * 2001-10-10 2007-05-29 Google Inc. Server for geospatially organized flat file data
US7627666B1 (en) * 2002-01-25 2009-12-01 Accenture Global Services Gmbh Tracking system incorporating business intelligence
JP3933955B2 (en) * 2002-02-19 2007-06-20 株式会社日立製作所 In-vehicle device
JP2003256466A (en) * 2002-03-04 2003-09-12 Denso Corp Adaptive information retrieval system
WO2003081483A1 (en) * 2002-03-18 2003-10-02 Daniel Rex Greening Community directory
US20030200192A1 (en) * 2002-04-18 2003-10-23 Bell Brian L. Method of organizing information into topical, temporal, and location associations for organizing, selecting, and distributing information
JP4153245B2 (en) * 2002-06-13 2008-09-24 日本信号株式会社 Information providing method and information providing system
US7383258B2 (en) 2002-10-03 2008-06-03 Google, Inc. Method and apparatus for characterizing documents based on clusters of related words
US7231393B1 (en) 2003-09-30 2007-06-12 Google, Inc. Method and apparatus for learning a probabilistic generative model for text
US7346856B2 (en) * 2003-08-21 2008-03-18 International Business Machines Corporation Apparatus and method for distributing portions of large web images to fit smaller constrained viewing areas
WO2005020143A2 (en) * 2003-08-22 2005-03-03 Meade Instruments Corporation Image processors and methods of image processing
JP2005071227A (en) * 2003-08-27 2005-03-17 Sony Corp Metadata distribution management system, metadata distribution management apparatus, individual metadata management apparatus, client terminal, metadata distribution management method, and computer program
CA2559726C (en) * 2004-03-24 2015-10-20 A9.Com, Inc. System and method for displaying images in an online directory
US7593740B2 (en) * 2004-05-12 2009-09-22 Google, Inc. Location-based social software for mobile devices
US20050278386A1 (en) * 2004-06-15 2005-12-15 Geographic Data Technology, Inc. Geospatial information system and method for updating same
US7693324B2 (en) * 2004-07-13 2010-04-06 International Business Machines Corporation Optical surface inspection
US20060036583A1 (en) * 2004-08-16 2006-02-16 Laust Sondergaard Systems and methods for processing search results
US9152651B2 (en) * 2004-10-15 2015-10-06 Celeritasworks, Llc Ticket entry systems and methods
US7636785B2 (en) * 2004-11-16 2009-12-22 Microsoft Corporation Heuristic determination of user origin
US7702626B2 (en) * 2004-12-22 2010-04-20 Sap Ag Simplified validity range selection
JP4674481B2 (en) * 2005-03-23 2011-04-20 株式会社デンソー Car navigation system
US7747632B2 (en) 2005-03-31 2010-06-29 Google Inc. Systems and methods for providing subscription-based personalization
US20060224583A1 (en) 2005-03-31 2006-10-05 Google, Inc. Systems and methods for analyzing a user's web history
US20060271281A1 (en) * 2005-05-20 2006-11-30 Myron Ahn Geographic information knowledge systems
US7933395B1 (en) * 2005-06-27 2011-04-26 Google Inc. Virtual tour of user-defined paths in a geographic information system
US7353114B1 (en) * 2005-06-27 2008-04-01 Google Inc. Markup language for an interactive geographic information system
US7428524B2 (en) 2005-08-05 2008-09-23 Google Inc. Large scale data storage in sparse tables
CN101449204A (en) * 2005-09-07 2009-06-03 实况活动媒体公司 Aerial support structure and method for image capture
US20070073562A1 (en) * 2005-09-28 2007-03-29 Sabre Inc. System, method, and computer program product for providing travel information using information obtained from other travelers
US7933897B2 (en) * 2005-10-12 2011-04-26 Google Inc. Entity display priority in a distributed geographic information system
US20070087798A1 (en) * 2005-10-13 2007-04-19 Elliot Mcgucken Morality system and method for video game: system and method for creating story, deeper meaning and emotions, enhanced characters and AI, and dramatic art in video games
US7933900B2 (en) 2005-10-23 2011-04-26 Google Inc. Search over structured data
US20070100862A1 (en) 2005-10-23 2007-05-03 Bindu Reddy Adding attributes and labels to structured data
US7555471B2 (en) 2006-01-27 2009-06-30 Google Inc. Data object visualization
US7925676B2 (en) 2006-01-27 2011-04-12 Google Inc. Data object visualization using maps
US7778952B2 (en) * 2006-01-27 2010-08-17 Google, Inc. Displaying facts on a linear graph
US8938464B2 (en) * 2006-04-25 2015-01-20 Google Inc. Identifying geo-located objects
WO2007146967A2 (en) * 2006-06-12 2007-12-21 Google Inc. Markup language for interactive geographic information system
US7860320B2 (en) * 2006-06-26 2010-12-28 Eastman Kodak Company Classifying image regions based on picture location
US7878392B2 (en) * 2006-08-18 2011-02-01 Haulpass, Llc Tracking removal or processing of debris material
US20080077597A1 (en) * 2006-08-24 2008-03-27 Lance Butler Systems and methods for photograph mapping
CA2662939C (en) * 2006-09-08 2017-01-10 Fortiusone, Inc. System and method for web enabled geo-analytics and image processing
US20080074423A1 (en) * 2006-09-25 2008-03-27 Raytheon Company Method and System for Displaying Graphical Objects on a Digital Map
US7783644B1 (en) * 2006-12-13 2010-08-24 Google Inc. Query-independent entity importance in books
US20080147366A1 (en) * 2006-12-19 2008-06-19 Science Application International Corporation System and method for displaying simulation data and visualization data
US9008617B2 (en) * 2006-12-28 2015-04-14 Verizon Patent And Licensing Inc. Layered graphical event mapping
US7836085B2 (en) * 2007-02-05 2010-11-16 Google Inc. Searching structured geographical data
US7860852B2 (en) * 2007-03-27 2010-12-28 Brunner Josie C Systems and apparatuses for seamless integration of user, contextual, and socially aware search utilizing layered approach
US7869938B2 (en) * 2007-03-29 2011-01-11 Alpine Electronics, Inc Method and apparatus for displaying simplified map image for navigation system
US8306967B2 (en) * 2007-10-02 2012-11-06 Loglogic, Inc. Searching for associated events in log data
US8397168B2 (en) * 2008-04-05 2013-03-12 Social Communications Company Interfacing with a spatial virtual communication environment
US20090125550A1 (en) * 2007-11-08 2009-05-14 Microsoft Corporation Temporal event stream model
US8095434B1 (en) * 2007-12-17 2012-01-10 Zillow, Inc. Automatically performing varying levels of summarization of geographic data points in response to a user's selection of zoom level
US7865308B2 (en) * 2007-12-28 2011-01-04 Yahoo! Inc. User-generated activity maps
CA2707246C (en) * 2009-07-07 2015-12-29 Certusview Technologies, Llc Automatic assessment of a productivity and/or a competence of a locate technician with respect to a locate and marking operation
US8275394B2 (en) * 2008-03-20 2012-09-25 Nokia Corporation Nokia places floating profile
US8364721B2 (en) * 2008-06-12 2013-01-29 Groundspeak, Inc. System and method for providing a guided user interface to process waymark records
EP2324460B1 (en) * 2008-08-12 2013-06-19 Google, Inc. Touring in a geographic information system
US8566142B2 (en) * 2008-08-14 2013-10-22 Quotify Technology, Inc. Computer implemented methods and systems of determining matches between searchers and providers
US8077918B2 (en) * 2008-08-28 2011-12-13 Google, Inc. Architectures and methods for creating and representing time-dependent imagery
US8872847B2 (en) * 2008-08-28 2014-10-28 Google Inc. Architectures and methods for creating and representing time-dependent imagery
US8626699B2 (en) * 2009-09-16 2014-01-07 Microsoft Corporation Construction of photo trip patterns based on geographical information
US20110153368A1 (en) * 2009-12-17 2011-06-23 XtremeGIS, Inc. User Interactive Reinsurance Risk Analysis Application
US20110320114A1 (en) * 2010-06-28 2011-12-29 Microsoft Corporation Map Annotation Messaging

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542812B1 (en) * 1999-10-19 2003-04-01 American Calcar Inc. Technique for effective navigation based on user preferences
US8786469B2 (en) * 2003-02-14 2014-07-22 Telecommunications Systems, Inc. Method and system for saving and retrieving spatial related information
US20050108644A1 (en) * 2003-11-17 2005-05-19 Nokia Corporation Media diary incorporating media and timeline views
US20060241860A1 (en) * 2005-04-21 2006-10-26 Microsoft Corporation Virtual earth mapping
US20070011150A1 (en) * 2005-06-28 2007-01-11 Metacarta, Inc. User Interface For Geographic Search
US20070291323A1 (en) * 2006-06-14 2007-12-20 Ranald Gabriel Roncal Internet-based synchronized imaging

Also Published As

Publication number Publication date
US10585920B2 (en) 2020-03-10
US8584013B1 (en) 2013-11-12
US20150161165A1 (en) 2015-06-11
US11636138B1 (en) 2023-04-25

Similar Documents

Publication Publication Date Title
US20230376511A1 (en) Temporal Layers for Presenting Personalization Markers on Imagery
US10949468B2 (en) Indicators for entities corresponding to search suggestions
US8260775B2 (en) Geotemporal search
US9279685B1 (en) Indicators for off-screen content
US10459967B2 (en) Interactive image display and selection system
US8996305B2 (en) System and method for discovering photograph hotspots
US7827507B2 (en) System to navigate within images spatially referenced to a computed space
RU2604436C2 (en) Social home page
US9357019B1 (en) Systems and methods for identifying increased user interest and promoting content in a geographic information system
US20110074811A1 (en) Map Layout for Print Production
US20170061485A1 (en) Search assistant system and method
CA2729285A1 (en) Method and system for displaying information based on user actions
US9829340B2 (en) Analysis of interactive map usage patterns
KR20100068492A (en) Method and apparatus for geographic specific search results including a map-based display
WO2013089569A1 (en) Hotel finder interface
MX2009001948A (en) Panoramic ring user interface.
Goh et al. Interfaces for accessing location‐based information on mobile devices: An empirical evaluation
US11068532B2 (en) Interactive image display and selection system
Kommana Implementation of a Geoserver Applicatoin For GIS Data Distribution and Manipulation
Weakliam et al. Personalising map feature content for mobile map users
Goh et al. Comparative evaluation of interfaces for presenting location-based information on mobile devices
CN111310080A (en) System and method for displaying a map on a display screen
Maiellaro et al. The Albanian cultural heritage on the Internet
Mandel Expanding Geography with Free and Open Source Software: Technology Diffusion, Cartography, and Data Analysis
HK1190474B (en) Search assistant system and method

Legal Events

Date Code Title Description
AS Assignment

Owner name: GOOGLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TVEIT, AMUND;REEL/FRAME:063627/0179

Effective date: 20070312

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: CERTIFICATE OF CONVERSION;ASSIGNOR:GOOGLE INC;REEL/FRAME:063633/0595

Effective date: 20170930

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: ADVISORY ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION