Tabular data, such as data in a spreadsheet, may include geographical information. For example, a company may list salespeople in a spreadsheet that, for each row, includes a name of the salesperson as well as an office address of where the salesperson works. The spreadsheet may also include home addresses of the salespeople in tabular form. In its tabular form, analyzing and visualizing this data is difficult.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.
Briefly, aspects of the subject matter described herein relate to geographic visualization of data. In aspects, data is obtained from a data store. Geographical data within the data is identified. The geographical data is provided to a mapping service that returns mapping data that includes locations corresponding to the geographical data. From the mapping data, a map is drawn that shows graphical elements for tuples of the data.
As used herein, the term “includes” and its variants are to be read as open-ended terms that mean “includes, but is not limited to.” The term “or” is to be read as “and/or” unless the context clearly dictates otherwise. The term “based on” is to be read as “based at least in part on.” The terms “one embodiment” and “an embodiment” are to be read as “at least one embodiment.” The term “another embodiment” is to be read as “at least one other embodiment.”
As used herein, terms such as “a,” “an,” and “the” are inclusive of one or more of the indicated item or action. In particular, in the claims a reference to an item generally means at least one such item is present and a reference to an action means at least one instance of the action is performed.
Sometimes herein the terms “first”, “second”, “third” and so forth may be used. Without additional context, the use of these terms in the claims is not intended to imply an ordering but is rather used for identification purposes. For example, the phrase “first version” and “second version” does not necessarily mean that the first version is the very first version or was created before the second version or even that the first version is requested or operated on before the second versions. Rather, these phrases are used to identify different versions.
Headings are for convenience only; information on a given topic may be found outside the section whose heading indicates that topic.
Other definitions, explicit and implicit, may be included below.
Aspects of the subject matter described herein are operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, or configurations that may be suitable for use with aspects of the subject matter described herein comprise personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microcontroller-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, personal digital assistants (PDAs), gaming devices, printers, appliances including set-top, media center, or other appliances, automobile-embedded or attached computing devices, other mobile devices, distributed computing environments that include any of the above systems or devices, and the like.
Aspects of the subject matter described herein may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. Aspects of the subject matter described herein may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
With reference to
The computer 110 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer 110 and includes both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media.
Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes RAM, ROM, EEPROM, solid state storage, flash memory or other memory technology, CD-ROM, digital versatile discs (DVDs) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer 110.
Communication media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media, discussed above and illustrated in
A user may enter commands and information into the computer 110 through input devices such as a keyboard 162 and pointing device 161, commonly referred to as a mouse, trackball, or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, a touch-sensitive screen, a writing tablet, or the like. These and other input devices are often connected to the processing unit 120 through a user input interface 160 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB).
A monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190. In addition to the monitor, computers may also include other peripheral output devices such as speakers 197 and printer 196, which may be connected through an output peripheral interface 195.
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 may include a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160 or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
As mentioned previously, analyzing and visualizing data that is in tabular form is difficult.
As used herein, the term component is to be read to include hardware such as all or a portion of a device, a collection of one or more software modules or portions thereof, some combination of one or more software modules or portions thereof and one or more devices or portions thereof, and the like.
A component may include or be represented by code. Code includes instructions that indicate actions a computer is to take. Code may also include information other than actions the computer is to take such as data, resources, variables, definitions, relationships, associations, and the like.
The components illustrated in
The components illustrated in
An exemplary device that may be configured to implement one or more of the components of
The geographic data manager 206 may obtain geographical data from the data store 211. Geographical data may include one or more of: coordinates, longitude, latitude, altitude, city, state, county, country, zip code, and the like. In addition to or instead of the geographical data above, geographical data may include a formal or informal name of a location. For example, geographical data may include a name such as “space needle,” “tri-state area,” “the golden gate,” other formal or informal names, and the like. The geographic data manger 206 may identify the geographical data within the data store 211 automatically, semi-automatically, or manually.
The data store 211 may include any storage media capable of storing data. The data store 211 may include volatile memory (e.g., a cache), non-volatile memory (e.g., a persistent storage), storage media described in conjunction with
The data store 211 provides access to tuples of data. As used herein, a tuple is a collection of data elements. Each data element may store data. The term tuple data refers to the data of one or more tuples. Access as used herein may include reading data, writing data, deleting data, updating data, a combination including two or more of the above, and the like.
The data store 211 may be implemented as a database. As used herein a database may comprise a relational database, object-oriented database, hierarchical database, network database, other types of database, some combination or extension of the above, and the like. Data stored in a database may be organized in tables, records, objects, other data structures, and the like. The data corresponding to the data store 211 may be stored in dedicated database files, dedicated hard drive partitions, HTML files, XML files, spreadsheets, flat files, document files, configuration files, other files, and the like.
Data in a database may be accessed via a database management system (DBMS). A DBMS may comprise one or more programs that control organization, storage, management, and retrieval of data of a database. A DBMS may receive requests to access data in a database and may perform the operations needed to provide this access. Even if the data store 211 is implemented with a database, when the data is stored in certain formats (e.g., XML, HTML, spreadsheet, flat files, document files, or the like), a local program may be used to view the data without contacting a remote DBMS.
In describing aspects of the subject matter described herein, for simplicity, terminology associated with relational databases is sometimes used herein. Although relational database terminology is sometimes used herein, the teachings herein may also be applied to other types of databases including those that have been mentioned previously.
In one example, data stored in the data store 211 is organized in the form of a table as illustrated in
The row 310 contains header information for each of the columns 305-308, while the rows 311-313 include row data. The columns 305 and 306 include geographical data that may be used to identify locations on a map. The rows 311-313 represent tuples of the table 300.
In another example, data stored in the data store 211 may be organized in the form of HTML files, XML files, flat files, document files, configuration files, other data structures, or the like. In other words, data stored in the data store 211 is not required to be represented or expressed as a table. For example, data in the data store 211 may include data in the form of:
Store #1:
Store #2:
. . .
Based on the teachings herein, those skilled in the art will recognize that the data above could be represented in XML or some other format without departing from the spirit or scope of aspects of the subject matter described herein.
Returning to
Returning to
The identifiers returned with the mapping data identify locations associated with geographical data of the tuples. These identifiers may be represented graphically in a variety of ways. For example, an identifier may be represented via the use of a graphical element that looks like a pushpin, thumbtack, line, arrow, circle, polygon, two dimensional or three-dimensional surface, picture, icon, a simplified representation of the underlying data (e.g., a graphical element that looks like a person, building, activity, or the like), other graphical elements, a combination of two or more of the above, and the like.
The user interface 208 is a component that allows a user to interact with the other visualization components 201. For example, a user may use the user interface 208 to specify that one or more other data elements of a tuple be used to influence the characteristics of the graphical representations of an identifier.
As some examples, one or more data elements of a tuple may be used to specify size, color, fill, background image, other characteristics, and the like of a graphical representation of an identifier. Size may be effective, for example, to show graphically how many employees are at a site, the volume of sales or other transactions that occur at a site, the number of referrals that come from a site, or other numerical data about a tuple. For example, referring to
It is possible for some reason (e.g., incomplete data, corrupted data, missing data, or the like) that some of the tuples may not include geographical data. In this case, the mapping data may include an identifier that identifies a default (e.g., previously selected or indicated) location to which such tuples are mapped.
As another example, the user interface 208 may allow a user to indicate where the geographical data of the tuple data is located. For example, referring to
The mapping manager 209 may insert the mapping data into a data structure (e.g., a spreadsheet or database file) that includes the tuple data. In this form, the mapping data may be usable by a program (e.g., a spreadsheet, database, or other program) to draw a map in a graphical interface (e.g., the user interface 208) when displaying the tuple data. In this form, the program may allow a user to scroll through the rows of the tuple data and may highlight (e.g., as the user is scrolling) the location associated with each row on the map.
Returning to
The hyperlink manager 210 comprises a component that may insert hyperlink data into a data structure that includes the tuple data. For example, if the tuple data is represented as a table, the hyperlink manager 210 may create or use a hyperlink column in the table and may then insert hyperlink data into the hyperlink column for each row of the table. The hyperlink data for a tuple references a location on a map. Selecting a hyperlink that corresponds to the hyperlink data may cause an identifier of the map to be highlighted.
The mapping service 215 is component that receives geographical data and, in response, returns a map and identifiers that identify different locations on the map corresponding to the geographical data. As used herein, a service may include one or more processes, threads, components, libraries, or the like that perform a designated task. A service may be implemented in hardware, software, or a combination of hardware and software. A service may be distributed over multiple devices or may be implemented on a single device.
The geographic data identifier 216 is a component that receives one or more tuples and uses the information therefrom to identify geographic data in the tuples. In one implementation, geographical data may be identified via user input into the user interface. In another implementation where the tuples are represented as a table, geographical data may be indicated by metadata about the columns of the table. In either of these implementations, the geographical data identifier 216 may be omitted.
The sharing service 217 allows tuple data and a map or a link thereto to be uploaded to the sharing service 217. After the tuple data and map (or link thereto) are uploaded, the sharing service 217 may provide this data for viewing the tuple data and map.
Although the mapping service 215, the geographic data identifier 216, and the sharing service 217 are illustrated as being remote to the visualization components 201, in other embodiments, one or more of these components may be local to the visualization components 201. Being local to the visualization components 201 means that one or more of these components may be hosted on an apparatus that hosts one or more of the visualization components.
Turning to
At block 615, geographical data within the tuples is identified. For example, referring to
At block 620, the geographical data is provided to a mapping service. For example, referring to
At block 625, mapping data is received. For example, referring to
At block 630, a map is drawn. The map includes a graphical element for each of the tuples that include a portion of the geographical data. The graphical element located on the map in a place corresponding to the geographical data. If a tuple does not include geographical data, a graphical element may be omitted or a graphical element may be displayed at a default location as indicated previously. For example, referring to
At block 635, other actions, if any, may be performed. For example, if the tuples are represented in table form, a new column may be created for the tabular data. For each row of the table, a link may be created in the new column that identifies a location on the map corresponding to the portion of the geographical data. Creating a link may include placing hyperlink data within the new column. This hyperlink data is represented by a hyperlink element of a graphical interface. The hyperlink element is operable to cause the location on the map to be displayed when selected within the graphical interface.
As another example or other actions, display data may be received via a graphical interface. The display data may indicate a column of the table that is to be used for a characteristic of the graphical element when drawing the graphical element for each tuple represented in the map. For example, referring to
As another example of other actions, the mapping data may be inserted into a data structure that includes the tuple data. For example, referring to
As another example of other actions, the tuple data and mapping data or link thereto may be saved to an online service to make the tuple data and the map available for sharing. For example, referring to
The examples of other actions indicated above are not intended to be all-inclusive or exhaustive of other actions that may occur. Based on the teachings herein, those skilled in the art may recognize other actions that may occur without departing from the spirit or scope of aspects of the subject matter described herein.
Turning to
At block 715, an indication is received via the graphical interface of geographical data contained in the tuple data. For example, referring to
At block 720, map data is obtained. The map data includes a plurality of location identifiers. The location identifiers correspond to the geographical data of the tuple data. For example, referring to
At block 725, a map is displayed that shows graphical elements for the location identifiers. For example, referring to
At block 730, other actions, if any, may be performed.
As can be seen from the foregoing detailed description, aspects have been described related to geographic visualization of data. While aspects of the subject matter described herein are susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit aspects of the claimed subject matter to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of various aspects of the subject matter described herein.