The disclosure related to a system for preparing and adjusting digital maps for laying out print products (e.g., books) for documenting e.g., travels and captured images.
In the ever expanding fields of personal computing and electronic devices, more and more features and functionality are being incorporated into portable devices. For example, cellular telephones and personal digital assistants (PDAs) may include cameras (for gathering images and video) while still providing traditional capabilities (e.g., telecommunications, storing personal information such as calendars, etc.). Due to their robust processing and computational resources, such devices may collect a significant amount of digital imagery (e.g., digital photographs and video). Along with storing such digital information, organizing and presenting the imagery can be a challenge.
Disclosed herein are systems and methods for preparing digital maps that indicate the locations associated with digital images. Locations may be associated with images based on various reasons, for example, a location may be where an associated image was captured. Position information (e.g., global position system (GPS) information) may also used to associate images and locations. By using location information associated with the images, interactions with a user, or other techniques, digital maps may be produced that identify each image associated location. Further, using data that is substantially resolution independent, the maps may be scaled to appropriately resolve each location. Once finalized by the user, the digital maps and the corresponding digital images may be prepared for printed productions or other types of layouts.
In some implementations, a method includes receiving a collection of digital images in which one or more of the digital images has an associated location. The method also includes displaying a digital map that is defined by a geographic area that includes the associated locations of the digital images. The method further includes annotating the digital map to include one or more identifiers. One or more of the identifiers represents a group of the associated locations as determined from a scale associated with the digital map.
In other implementations, a computing device includes a memory configured to store digital images. The computing device also includes a processor configured to execute instructions to perform a method that includes receiving a collection of digital images in which one or more of the digital images has an associated location. The method also includes displaying a digital map that is defined by a geographic area that includes the associated locations of the digital images. The method further includes annotating the digital map to include one or more identifiers. One or more of the identifiers represents a group of the associated locations as determined from a scale associated with the digital map.
In other implementations, one or more computer readable media store instructions that are executable by a processing device, and upon such execution cause the processing device to perform operations that include receiving a collection of digital images, wherein one or more of the digital images has an associated location. Execution of the instructions also cause the processing device to perform operations that include displaying a digital map that is defined by a geographic area that includes the associated locations of the one or more digital images. Execution of the instructions also cause the processing device to perform operations that include annotating the digital map to include one or more identifiers, wherein at least one of the identifiers represents a group of the associated locations as determined from a scale associated with the digital map.
These and other aspects and features and various combinations of them may be expressed as methods, apparatus, systems, means for performing functions, program products, and in other ways.
Other features and advantages will be apparent from the description.
Like reference symbols in the various drawings indicate like elements.
Referring to
In this particular illustration, the individual carrying cell phone 102 progresses along path 104 and captures images (with an incorporated camera) at various points of interest. While this example describes individual images (e.g., photographs) being collected, other types of imagery (e.g., video) may also be collected with cell phone 102. In this example, the individual is located in Paris, France and path 104 passes the individual through a series of landmarks such as the Jardins Des Tuileries gardens (represented by flowers 106), which may provide various rural scenes of the local nature. Stopping along the way, images of the garden may be collected using the camera functionality of cell phone 102. Along with collecting the images, additional information may be collected. For example, many portable computing devices like cell phone 102 include an internal clock that provides the time (and date) at each instance an image is captured. As such, data representing the time (e.g., month, day, hour, minute, second) that the image is captured is also collected and grouped with the image data (e.g., inserted into metadata). Other types of collected data may include parameters associated with the cell phone (e.g., serial and model number), collection parameters (e.g., image resolution) and other similar information.
As the individual continues to travel (and carry cell phone 102), position data is collected along with additional images captured. For example, at approximately the midpoint of the traveled path 104, the individual may pass by another landmark such as the Arc De Triomphe 108. Similarly, the individual may pause and capture one or more images of this Paris landmark along with collecting time and position information. Continuing on, the individual may conclude the trip by stopping at another landmark, the location of the Eiffel Tower 110 (in this particular example). Similar to the other locations visited, images may be captured of this landmark along with related information (e.g., position of the capture location, day and time when image capture occurred). As mentioned, this associated information (e.g., location information, day and time, etc.) may be assigned to the digital images at a later time.
In this arrangement, at the conclusion of the travel, significant amounts of information may be stored in cell phone 102. For example, along with captured images 112, associated location information, and day and time stamps may also be stored in memory onboard cell phone 102. As such, information may reside on cell phone 102 that represents sights experienced along the traveled path 104 and information that represents the location of the sights. Often to review the events of a trip, an individual cycles through the captured images and possibly adjusts the image sequence to correlate with the order that sights were visited. However, by capturing a significant number of images and traveling in a somewhat meandering manner, the correlation between the path traveled and the captured images can become confused. As such, the individual may be unable recall the sequence that the images were captured and the path traveled. For such situations, the individual may be unable to fully explain (to another) the path traveled or even be unable to retrace the traveled path (e.g., for returning to the starting point) since the collected images may be of little or no help. However, by using the associated position, time and date information (that correspond to each image), the captured images and locations visited can be correlated. Further, by combining the images, the position and time information, and a digital representation of a map, a graphical presentation may be produced that allows the locations of the images to be quickly identified along with the traveled path. Further, the combined information may be presented in various forms and mediums, for example, a graphical representation of the map and the identified image locations may be presented on a computer display. In another example, the information may be incorporated into various print products (e.g., hard or soft bound books) that may be purchased by the individual who originally captured the images.
Referring to
To produce a graphical representation such as a digital map, computer system 200 also accesses data that represents locations that may be included in a map. In this arrangement, map data 204 is stored in storage device 202, which may also store the received images (e.g., images 112) along with position and time information. However, in some arrangements this information may distributed among multiple storage devices or preserved by other data storing techniques (e.g., storing the information at other locations via one or more networks).
In this arrangement, map data 204 allows graphical map representations to be produced that are resolution independent. For example, global maps (e.g., maps that include representations of multiple countries) and national maps (e.g., maps that include regions of a nation) may be produced. Continuing down in scale, maps may also be produced at the state, county and city level. Scaling even further down, street level and neighborhood maps could be produced that resolve individual properties (e.g., building, homes, businesses, etc.). One or more techniques may be implemented to produce maps of such relatively large and small scales. For example, map data 204 may represent a collection of polygons that represent the shapes of each feature on the planet. Such a collection may include hundreds of thousands or even millions of polygons to represent the individual shapes. Used individually or in combination, the polygons can produce large scale shapes (e.g., the geographical shape of France) and represent small features (e.g., small islands, river bends, lakes, etc.). Since polygons are used to represent the shapes, various mathematical operations may be executed for scaling and combining the polygons to produce a map of appropriate resolution.
To process the information associated with the images 112 (e.g., image content, associated position information and time, etc.) and map data 204, computer system 200 executes a map producer 206. Along with one or more software components (e.g., functions, processes, etc.), hardware components (e.g., circuitry, processors, etc.) may be used individually or in concert with the software to provide the functionality of map producer 206. Various operations may be executed for map production, for example, map producer 206 may access information associated with the captured images (e.g., position and time) to determine the associated location with respect to the map data 204. Operations may also be executed on map data 204, for example, map producer 206 may accordingly select the polygons needed to present the locations associated with images 112. By selecting only the polygons needed to represent the locations of the images, map producer 206 filters unneeded polygons and thereby conserves computations resources (e.g., processing time and memory space) of computer system 200. Further, by selecting needed polygons in a relatively efficient manner, map producer 206 may quickly identify polygons needed to increase the scale of a map and appropriately execute operations to process the polygons to produce the larger scale (e.g., provide zoom out capabilities).
While collected images 112 may provide position information, which can be used by map producer 206 to determine the needed scale, such information may also be provided from other sources. For example, user interactions with map producer 206 may also provide location information. In one arrangement, map producer 206 may receive user interactions from a graphical user interface (GUI) that is accessed by the individual that provided the images 112. The individual may type the term, e.g., “France” into a GUI to alert map producer 206 to the general location that the images were captured. Since all of the images were captured in Paris, the user may insert more focused terms e.g., “Paris, France” into the GUI to provide the general location that the images were captured. To assist the user, auto-sensing techniques may be implemented for easily recognizing locations such as Paris. Assistance may also be provided by one or more graphical techniques, for example, the user may be provided a series of menus for selecting the general location associated with the images (e.g., the capture location). By using a selection tool (such as a mouse driven pointer), a user may manipulate (e.g., zoom in and zoom out) presented graphics to identify an appropriate region for a digital map. For example, by selecting a graphical representation for France, the map producer 206 may zoom in to display the individual regions and cities of France. Since the polygons used to provide the displayed digital map (of France) can be quickly accessed, map producer 206 can relatively quickly produce a digital map of a region of interest (at substantially any scale). Further, by allowing the user to interact with displayed digital maps, dynamic zooming in and out of the maps is provided.
In this particular arrangement, a digital map 208 is generated by map producer 206 and represents the general region that images 112 are associated (e.g., Paris, France). To indicate these associated locations, digital map 208 is annotated with a graphical pin 210. The geographical position of graphical pin 210 may have been provided by the position information associated with the images 112. The location of graphical pin 210 may also be provided from user interactions. For example, through a GUI, a user may have selected the general location of Paris, France by translating across a representation of a digital map of the globe and by using zoom in and out capabilities provided by map producer 206.
Once associated with digital map 208 (as represented by graphical pin 210), the images and the position data may be incorporated into one or more graphical representation that implement various types of medium. For example, map producer 206 may represent the images and information in a project 212 that catalogs other travels of the user. In one arrangement, project 212 may contain information associated with various global or European travels of the user and digital map 208 and images 112 may be inserted as one chapter (e.g., “A trip to Paris, France”) in the project. Project 212 may provide many uses for the stored images and information, for example, the material may be viewed, edited and used to produce print products. For example, bound books (e.g., hard bound, soft bound, wire bound, etc.) books may be produced from the information included in project 212. Other types of operations that use project 212 may also be executed by map producer 206, for example, the content of the project may be combined with content from one or more other projects.
Referring to
Map producer 206 may provide other operations for producing and adjusting digital maps such as digital map 208. For example, graphical properties of digital map 208 may be adjusted. Properties of presented text (e.g., font, size, color, style, etc.) may be adjusted by map producer 206 as directed through user interactions or by predefined preferences. Presented colors and textures of portions of digital map 208 may also be adjusted through user interactions with map producer 206. For example, a GUI may be provided that allows a user to control the style of a map to be rendered (e.g., fill colors, adjust shading, texture, gradient, etc.). Some of the adjustable map portions include the content of the map (e.g., presented color of an individual country or state, etc.), presentation graphics (e.g., the color of a border that frames the map) and other data associated with the map. One or more stylistic effects may also be applied to various map portions by map producer 206 based upon the content of the map. For example, particular styles may be applied to particular map regions (e.g., one set of style settings may be applied to the European region of a map while another set of styles are applied to the Asian region of the map). Application of different styles may also depend upon information associated with the user. For example, one or more styles may be applied to regions (e.g., defined by geography, geo-political geography, etc.) visited by the user. Such styles associated with a map may be implemented by utilizing one or more techniques. For example, the styles and style adjustments may be represented in one or more extensible markup language (XML) layers. Map producer 206 may also allow various graphics to be added to a digital map (e.g., as directed by a user). For example, textual information (e.g., map title, labels for points of interest, notes for describing the map, favorite locations, etc.) such as label 300 and graphics (e.g., a graphical representation of a compass) may be added in an editable form. Map content may also be adjusted by map producer 206. For example, a menu (or other type of graphical tool) may be presented such that a user may select types of content that may be included or removed from a map. In one arrangement, a series of radio buttons may be provided for toggling presented content such as contours (e.g., elevation contours), bodies of water (e.g., rivers, lakes, inland waters), transportation information (e.g., graphical representations of streets, highways, airports), landmarks (e.g., natural occurring and constructed), etc. In some arrangements, map producer 206 may form an association between a digital map and one or more file or documents. For example, an itinerary or other document associated with a trip may be associated with a digital map. By combining the information, along with viewing the images from a trip, a user can trace their travels with the itinerary information.
Referring to
Similar to larger scale maps, map producer 206 also allows aspects of digital maps such as map 400(c) to be adjusted. For example, map features (e.g., streets, landmarks, rural areas, marine areas, etc.) may be represented with various adjustable colors, textures and other types of graphics. Along with the positions of the image capture locations, other information may also be represented on digital map 400(c). For example, by processing the time and date information associated with the images, map producer 206 may determine the sequence that the locations associated with the images (e.g., the capture locations) were visited. In this illustration, photographs were first captured at the Jardins Des Tuileries, then at the Arc De Triomphe, and lastly at the Eiffel Tower. As such, map producer 206 may identify the visit sequence for these landmarks and graphically represent the sequence. For example, one graphical line 408 is included with digital map 400(c) to indicate the distance and direction traveled from the Jardins Des Tuileries (represented by graphical pin 402) to the Arc De Triomphe (represented by graphical pin 404). Similarly, map producer 206 also includes a graphical line 410 to represent the distance and direction traveled from the Arc De Triomphe (represented by graphical pin 404) to the Eiffel Tower (represented by graphical pin 406). Other information and types of information may also be represented on digital map 400(c). Graphical icons may be placed upon the map by a user, for example, icons (e.g., a knife and fork, a bed, etc.) may be positioned at particular locations to represent locations visited (e.g., restaurants, hotels, etc.), for example, where images were not captured. As such, various types of graphical markers may be directly added by a user to a map (e.g., selecting one or more locations with a pointing device such as a mouse). Referring to
Referring to
Similar to the graphical lines 408 and 410 (shown in
Referring to
Referring to
The memory 820 stores information within the system 800. In some implementations, the memory 820 is a computer-readable medium. The memory 820 is a volatile memory unit in some implementations and is a non-volatile memory unit in other implementations.
The storage device 830 is capable of providing mass storage for the system 800. In one implementation, the storage device 830 is a computer-readable medium. In various different implementations, the storage device 830 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device.
The input/output device 840 provides input/output operations for the system 800. In one implementation, the input/output device 840 includes a keyboard and/or pointing device. In another implementation, the input/output device 840 includes a display unit for displaying graphical user interfaces.
The features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program 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.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of 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 executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the described one. 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.
Other details and features combinable with those described herein may be found in the following U.S. patent application entitled “Organizing Digital Images based on Locations of Capture”, filed on 21 Aug. 2009 and assigned Ser. No. 12/545,765. The entire contents of the aforementioned application is hereby incorporated by reference.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the following claims. For example, the techniques described herein can be performed in a different order and still achieve desirable results.