US20100045699A1 - Dynamic Exploration Of Electronic Maps - Google Patents
Dynamic Exploration Of Electronic Maps Download PDFInfo
- Publication number
- US20100045699A1 US20100045699A1 US12/614,266 US61426609A US2010045699A1 US 20100045699 A1 US20100045699 A1 US 20100045699A1 US 61426609 A US61426609 A US 61426609A US 2010045699 A1 US2010045699 A1 US 2010045699A1
- Authority
- US
- United States
- Prior art keywords
- metrics
- template
- map
- module
- metric
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q30/00—Commerce
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/067—Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/003—Maps
- G09B29/006—Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
- G09B29/007—Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes using computer methods
Definitions
- This invention pertains in general to the visual representation of information and in particular to techniques for displaying information on electronic maps.
- map data Even though there is a wide variety of map data available on the Internet, there are still many types of data that either cannot be viewed on maps, or are not well-represented on the maps. For example, a person hunting for a house might be interested in school districts, average housing prices, average incomes for a neighborhood, driving distances to work or shopping, etc. This information is often available on the Internet but cannot be viewed on a map.
- the data can be viewed on a map
- the data are often displayed in a manner that reduces the effectiveness of the map. For example, one way to show school districts on a map is to present a static overlay that illustrates the district boundaries. Similarly, average housing prices can be shown by shading regions of the map with different colors representing the prices. A difficulty with representing data in this way is that the map quickly becomes cluttered with too much information and becomes difficult to comprehend.
- a system for enabling dynamic exploration of an interactive map comprises a metrics data storage module storing metrics describing mapped regions, a template storage module storing templates, each template identifying a set of metrics to display if the template is active, and a communications module receiving requests for certain metrics and providing the metrics in response, and receiving requests for templates and providing the templates in response.
- FIG. 1 is a high-level block diagram of a computing environment for providing maps and related data according to one embodiment.
- FIG. 2 is a high-level block diagram illustrating a functional view of a computer for use as one of the entities illustrated in the environment of FIG. 1 according to one embodiment.
- FIG. 3 is a high-level block diagram illustrating modules within the metrics server according to one embodiment.
- FIG. 4 is a high-level block diagram illustrating modules within the mapping engine according to one embodiment.
- FIG. 5 shows an example of a display produced by the rendering module of the mapping engine according to one embodiment.
- FIG. 6 is a flow chart illustrating steps performed by the mapping engine according to one embodiment.
- FIG. 1 is a high-level block diagram of a computing environment 100 for providing maps and related data according to one embodiment.
- the illustrated environment contains a map server 110 and a metric server 112 coupled to a network 114 .
- Multiple clients 116 having mapping engines 118 are also coupled to the network 114 .
- the mapping engines 118 display maps from the map server 110 and metrics from the metrics server 112 .
- the mapping engines 118 receive templates from the metrics server 112 and/or another entity that specify how to display certain metrics on the map.
- the templates and metrics are highly-customizable, which allows end-users to view metrics in a manner that maximizes comprehension of the map.
- FIG. 1 and the other figures use like reference numerals to identify like elements.
- the map server 110 stores and provides data for generating maps.
- the map data describe geographic regions, such places on the Earth, Moon, or elsewhere in the solar system, and/or fictional locations.
- the map data include data such as geographic and political boundaries, topographical data, image data (e.g., satellite imagery), street and address data, data describing geographic features and buildings, and/or other types of data.
- the map server 110 provides subsets of the map data in response to queries for data received via the network 114 . For example, the map server 110 can receive a query asking for a certain type of satellite imagery centered on a specified latitude/longitude and provide the requested data in response.
- the map server 110 provides image data that illustrate the map.
- the map server 110 provides raw data that a requestor can use to create a map.
- a metrics server 112 stores and provides metrics data describing metrics for the geographic regions described by the map data.
- the metrics data are static or dynamic and generally describe attributes of the map data. These attributes can include statistical and/or demographic information.
- the map data can describe the streets of a city while the metric data describe traffic congestion on the streets.
- the metrics data can describe weather conditions, political boundaries and other locations not contained in the map data, such as school districts, locations of businesses and public transportation, etc. Many different types of metrics data are described below, and different embodiments of the metrics server 112 can provide different metrics data.
- the map server 110 and metrics server 112 are combined.
- the metrics server 112 stores and provides a set of templates describing what metrics to display on a map and how to display them.
- a template identifies one or more metrics and, for each metric, states one of a variety of different techniques to use to represent the metric on the map. For example, a template can identify a crime rate metric, and state that the crime rate for a given region on a map should be described using a numeric value between 1 and 10. Likewise, a template can specify a location on a map and state that the distance from the center of the currently-displayed map to the location be represented using a vector arrow. Another template can combine the two metrics and techniques described above, e.g. display both the crime rate and distance to the specified location.
- At least some metrics data and/or templates stored by the metrics server 112 are provided by end-users of the clients 116 . Additionally, in some embodiments there are multiple metrics servers 112 . For example, a metrics server 112 can be dedicated to providing certain types of metrics, such as environmental data or data describing public schools. In one embodiment, at least some templates are provided by a server other than the metrics server 112 , such as a dedicated template server or a third party server.
- a client 116 is a computer utilized by an end-user to communicate with the map server 110 , metrics server 112 , and/or other computers on the network 114 .
- the computer for example, is a personal computer executing a web browser such as MICROSOFT INTERNET EXPLORER or MOZILLA FIREFOX, that allows the end-user to retrieve and display content from web servers and other computers on the network 114 .
- the client 116 is a network-capable device other than a personal computer, such as a personal digital assistant (PDA), a cellular telephone, a pager, an in-vehicle navigation system, a television “set-top box” etc.
- PDA personal digital assistant
- FIG. 1 illustrates three clients 116 , embodiments of the present invention can have thousands or millions of clients.
- the client executes a mapping engine 118 that provides an end-user with the ability to specify a geographic location and obtain a map for the location from the map server 110 .
- the end-user specifies one or more active templates for displaying metrics on the map by selecting a template stored by the metrics server 112 or creating a custom template.
- the mapping engine 118 displays the map, and displays metrics data from the metrics server 112 as specified by the active template.
- the end-user uses the mapping engine 118 to specify metrics data and optionally send the metrics data to the metrics server 112 from where it can be utilized by other end-users.
- the end-user sends custom templates to the metrics server 112 from where the templates can be utilized by other end-users.
- the network 114 represents the communication pathways between the map server 110 , metrics server 112 , and clients 116 .
- the network 114 is the Internet.
- the network 114 can also utilize dedicated or private communications links that are not necessarily part of the Internet.
- the network 114 carries traffic using standard communications technologies and/or protocols.
- the network 114 can include links using technologies such as Ethernet, 802.11, integrated services digital network (ISDN), digital subscriber line (DSL), asynchronous transfer mode (ATM), etc.
- the networking protocols used by traffic on the network 114 can include multiprotocol label switching (MPLS), the transmission control protocol/Internet protocol (TCP/IP), the hypertext transport protocol (HTTP), the simple mail transfer protocol (SMTP), the file transfer protocol (FTP), etc.
- MPLS multiprotocol label switching
- TCP/IP transmission control protocol/Internet protocol
- HTTP hypertext transport protocol
- SMTP simple mail transfer protocol
- FTP file transfer protocol
- the data exchanged over the network 114 can be represented using technologies and/or formats including the hypertext markup language (HTML), the extensible markup language (XML), etc.
- HTML hypertext markup language
- XML extensible markup language
- all or some of links can be encrypted using conventional encryption technologies such as the secure sockets layer (SSL), Secure HTTP and/or virtual private networks (VPNs).
- SSL secure sockets layer
- VPNs virtual private networks
- the entities can use custom and/or dedicated data communications technologies instead of, or in addition to, the ones described above.
- FIG. 2 is a high-level block diagram illustrating a functional view of a computer 200 for use as one of the entities illustrated in the environment 100 of FIG. 1 according to one embodiment. Illustrated are at least one processor 202 coupled to a bus 204 . Also coupled to the bus 204 are a memory 206 , a storage device 208 , a keyboard 210 , a graphics adapter 212 , a pointing device 214 , and a network adapter 216 . A display device 218 is coupled to the graphics adapter 212 .
- the processor 202 may be any general-purpose processor such as an INTEL x86 compatible-CPU.
- the storage device 208 is, in one embodiment, a hard disk drive but can also be any other device capable of storing data, such as a writeable compact disk (CD) or DVD, or a solid-state memory device.
- the memory 206 may be, for example, firmware, read-only memory (ROM), non-volatile random access memory (NVRAM), and/or RAM, and holds instructions and data used by the processor 202 .
- the pointing device 214 may be a mouse, track ball, or other type of pointing device, and is used in combination with the keyboard 210 to input data into the computer system 200 .
- the graphics adapter 212 displays images and other information on the display device 218 .
- the display device 218 is, for example, a LCD panel, a projector, a heads-up display for a vehicle, and/or a pair of virtual reality goggles.
- the network adapter 216 couples the computer 200
- a map server 110 and/or metrics server 112 might be provided by a web server running on a powerful computer system comprising one or more blade servers operating in tandem.
- a client 116 might contain a single processor 202 and have a relatively small storage device 208 .
- the computer lacks one or more of the elements shown in FIG. 2 , such as a keyboard 210 , pointing device 214 , graphics adaptor 212 , and/or display device 218 .
- the computer 200 is adapted to execute computer program modules.
- module refers to computer program logic and/or data for providing the specified functionality.
- a module can be implemented in hardware, firmware, and/or software.
- the modules are stored on the storage device 208 , loaded into the memory 206 , and executed by the processor 202 .
- FIG. 3 is a high-level block diagram illustrating modules within the metrics server 112 according to one embodiment. Other embodiments have different and/or additional modules than the ones shown in the figure. In addition, other embodiments distribute the functionalities among the modules in a different manner. Further, in some embodiments functionalities attributed to the metrics server 112 are performed by other entities such as the map server 110 and/or the clients 116 .
- a metrics data storage module 310 stores data describing attributes of the areas on the maps produced by the map server 110 (i.e., “metrics”).
- metrics data can include, for example, demographic, psychographic, and/or other statistical data describing a population of a region, boundary data describing governmental and quasi-governmental boundaries, cost information describing costs of living, real estate values, and fuel costs, traffic and weather data describing traffic congestion, average temperatures, and air quality, location data describing locations of entities such as offices, commercial centers, schools, religious facilities, hospitals and public transportation, and miscellaneous information describing attributes like average noise, locations of registered sexual offenders, whether ocean views are available from a location etc.
- Other embodiments store different and/or additional metrics data.
- Some metrics are static while others are dynamic. For example, certain metrics, like locations of schools, change infrequently and can be considered static. Other metrics, like current traffic congestion on a road, are dynamic and may change frequently.
- metrics are explicitly described by the metrics data, while some metrics are computed from other metrics.
- Explicit metrics are metrics that are used in their current form. For example, the metrics data may explicitly specify locations of schools and businesses, home values, and crime rates within a region.
- Computed metrics are derived from other explicit and/or computed metrics. For example, the cost of traveling between two points may be computed based on the distance between the points, average fuel costs for the region, and current or historical traffic congestion. Likewise, the average housing prices for a city may be calculated from average prices of smaller units (e.g., ZIP codes) that are explicitly described by other metrics, and whether a location has ocean views may be calculated based on the distance to an ocean, topographical data, and/or data describing the heights of adjacent buildings. These computed metrics are derived by applying functions to other metrics. Similarly, some computed metrics are based on whether conditions are satisfied by one or more other metrics.
- a metric can indicate whether an area is within five minutes walking distance of a school, within a 10 minute drive to a commercial district, and has average home processes of less than $500 K.
- computed metrics are not stored by the metrics data storage module 310 but rather are computed in real time by the mapping engines 118 .
- At least some of the metrics data stored by the storage module 310 are derived from information accessible on the network 114 . Certain types of information, such as demographic and weather information, are widely available on the World Wide Web and via other network-accessible electronic documents. Some metrics data stored by the storage module 310 are provided by commercial data providers and might not be publicly-accessible. Other metrics data stored by the storage module 310 are provided by end-users of the clients 116 . For example, noise data describing the average noise of a geographic location can be submitted by an end-user familiar with the location.
- a template storage module 312 stores templates describing what metrics to display on a map. That is, a template describes one or more metrics to include on a map when the template is applied to the map.
- a template describes a computed metric by specifying how to derive the metric from other metrics. For example, a template can indicate that explicit school district boundaries are shown on maps viewed using the template, and that the distance from the center of the map to the nearest school is also shown.
- the template further describes how the metric is to be displayed. For example, the metric can be displayed as a raw number, as a vector arrow on the map, as a bar graph, as images or 3-D models, etc.
- each template in the template storage module 312 is identified by a name or other unique identifier.
- a template specifies the network address of the server that provide the metrics data.
- the templates in the storage module 312 are designed for pre-specified tasks.
- a “home finding” template is designed to assist an end-user in shopping for a new house and references metrics geared to that task. These metrics include, for example, average real estate prices, average education levels, crime rates, distances to locations like commercial districts, schools, and workplaces, noise levels, etc.
- Other tasks for which templates may exist include vacation planning, job searching, school searching, etc.
- the templates in the template storage module 312 are created by an administrator and/or other person associated with the metrics server 112 and/or map sever 110 .
- engineers associated with the metrics server 112 develop templates for certain tasks and store the templates in the storage module 312 .
- one or more of the templates are created by end-users of the clients 116 .
- the end-users create templates on the clients 116 by specifying the explicit metrics and/or defining functions for computed metrics and upload the templates to the template storage module 312 .
- the template storage module 312 stores a variety of templates, some created by the operator of the metrics server 112 and others created by end-users and/or other entities.
- an ad server module 314 serves advertisements and/or other messages to clients.
- the ads are stored in the ad serving module 314 and/or at another location on the network 114 .
- the ad server module 314 selects ads based on a template being used by an end-user and/or the metrics presented by the template. For example, if an end-user selects a “house hunting” template, the ad server module 314 serves ads related to real estate, such as ads for real estate agents, mortgage brokers, etc.
- the ad serving module 314 shows ads for more expensive products when the metrics indicate a high average income and for less expensive products when the metrics indicate a lower average income.
- Other embodiments of the ad serving module 314 serve ads based on additional and/or different criteria.
- a communications module 316 supports communications with the map server 110 , clients 116 , and/or other entities via the network 114 .
- the communications module 316 receives communications from the clients 116 including requests for templates and/or requests for metrics data.
- the communications module 316 provides the templates, data, and/or ads to the requesting clients 116 .
- an embodiment of the communications module 316 receives new templates and/or metrics data from the clients 116 and/or other entities and provides these inputs to other modules in the metrics server 112 for processing and/or storage.
- FIG. 4 is a high-level block diagram illustrating modules within the mapping engine 118 according to one embodiment. Other embodiments have different and/or additional modules than the ones shown in the figure. In addition, other embodiments distribute the functionalities among the modules in a different manner. Further, in some embodiments functionalities attributed to the mapping engine 118 are performed by other entities on the client 116 and/or elsewhere on the network 114 .
- mapping engine 118 is a standalone application. In another embodiment, the mapping engine 118 is incorporated into another application.
- the modules can be executed within an execution environment provided by a general purpose web browser.
- a communications module 410 supports communications with the map server 110 , metrics server 112 , and/or other entities via the network 114 .
- the communications module 410 uses Asynchronous JavaScript and XML (AJAX) to communicate with the map server 110 and/or metrics server 112 . This technology allows the communications module 410 to rapidly exchange small amounts of data with the servers and increases the perceived responsiveness of the mapping engine 118 when updating maps, displaying metrics, and/or performing other functions.
- AJAX Asynchronous JavaScript and XML
- the communications module 410 submits requests to the map server 110 for map data and receives map data in response. Likewise, the communications module 410 submits requests for templates and/or metrics data from the metrics server 112 and receives the requested data in response. The communications module 410 provides received data to the other modules in the mapping engine 118 for subsequent processing. In some embodiments, the communications module 410 provides templates and/or metrics data to the metrics server 112 .
- a map module 412 requests, receives, and stores map data from the map server 110 .
- the map module 412 provides the map server 110 with a description of a geographic region, such as the name of a city, a latitude/longitude on which the map is centered, a set of coordinates defining a region for which map data are desired, etc. and the map server 110 provides the requested map data. These data are stored by the map module 412 for use by the other modules in the mapping engine 118 . In one embodiment, the map module 412 caches the map data for a specified period of time, after which the map data are discarded.
- a template module 414 requests, receives, and stores templates.
- the templates are requested and received from the metrics server 112 , another server on the network 114 and/or created by an end-user of the client 116 .
- one or more templates are designated as “active” by the end-user, meaning that the metrics specified by the template are displayed in combination with a map at the client 116 .
- a metric storage module 416 stores metrics data received from the metrics server 112 and/or provided by the end-user.
- an end-user can provide metrics data and selectively override data received from the metrics server 112 . For example, if the end-user is aware that a noise level at a particular location is higher than the data from the metrics server 112 indicate, the end-user can enter a new noise level.
- the metric storage module 416 stores the user-provided data.
- the mapping engine 118 provides the end-user provided data to the metrics server 112 , from where it can be shared with other clients 116 .
- a metric computation module 418 determines values of any computed metrics specified and/or required for a template.
- the metric computation module 418 operates in real time. Thus, if a computed metric in an active template is the distance between a fixed location and a variable location, the metric computation module 418 updates the metric in real time as the variable location changes.
- the metric computation module 418 searches map and/or metric data to find locations where metrics have certain values. For example, the metric computation module 418 can identify areas within five minutes walking distance to schools that have average home prices below $500 K.
- a user interface (UI) module 420 enables and controls end-user interactions with the mapping engine 418 .
- the UI module 420 interacts with the operating system and/or other modules on the client 116 to provide a graphical user interface (GUI) that allows an end-user to use input devices such as keyboards and mice to perform actions such as selecting areas to map, scrolling around the map, and controlling the level of detail (e.g., zoom) of the map.
- GUI graphical user interface
- the GUI allows the end-user to view templates stored by the metrics server 112 and/or the mapping engine 118 , and designate one or more templates as “active.”
- an embodiment of the GUI provided by the UI module 420 allows the end-user to create new templates and modify existing templates by selecting and/or defining metrics to include in the templates.
- the UI module 420 allows the end-user to specify parameters of the templates and/or metrics, such as the name of the template and how to represent and display the metric.
- a rendering module 422 works in combination with the UI module 420 and/or other modules in the mapping engine 118 to render a display illustrating the map and metrics from the active templates.
- FIG. 5 shows an example of a display 500 produced by the rendering module 422 according to one embodiment. This display 500 illustrates a map and metrics that are displayed when a “house hunting” template is active. The illustrated map and metrics are merely representative examples, and other embodiments can show different maps and/or metrics.
- the display 500 has two primary areas, a map area 510 and a metrics panel 512 .
- the map area 510 shows the map and any metrics that are configured to appear on the map.
- the map area 510 includes a reference point 514 on which the metrics are based.
- the reference point is a location on the map, such as the center of the displayed region.
- the reference point is controlled by the mouse or other input device and can be freely moved on the map by the end-user.
- the metrics are updated in real time as the reference point changes.
- An arrow 516 on the display indicates a direction and distance from the reference point 514 to an ocean view.
- the length of the arrow 516 indicates the quality of the view
- the width of an arc associated with the arrow indicates the width of the view.
- a text label on the map indicates the distance to the view.
- the ocean view arrow 516 is an example of a computed metric determined by the metric computation module 418 based on other metrics, such as topographical information and building height information.
- Three vector arrows 518 A-C on the map indicate the direction and distance to other points on the map.
- These other points can be directly specified by the end-user and/or template.
- the end-user can place a point at a potential employer, e.g., “Google” and the arrow 518 A represents the direction and distance to the employer from the reference point.
- the road to the employer is also labeled with “To Google.”
- the points can be specified indirectly.
- arrow 518 B points to the nearest grocery store, a SAFEWAY, and arrow 518 C points to the nearest school 520 , Lincoln Elementary School.
- these indirectly specified points are updated in real time as the reference point changes.
- Two concentric lines 522 A-B represent boundaries described in the template.
- the innermost line 522 A defines areas within 5 minutes driving time
- the outermost line defines areas within 10 minutes driving time.
- Other embodiments represent other and/or different data.
- metrics are displayed as graphical images and/or 3-D models.
- an end-user can hover the cursor over the location of a house on the map, and cause the display 500 to show an image and/or 3-D model of the house.
- the image/model can appear in the map area 510 , metrics panel 512 , and/or elsewhere on the display 500 .
- the metrics panel 512 displays metrics that are configured to appear in the panel.
- the illustrated display 500 shows the panel adjacent to the map. In other embodiments, the panel is located at other locations and/or is in a floating window that can be moved and manipulated by the end-user.
- the metrics panel 512 includes a variety of different metrics. In one embodiment, each computed metric is determined in real time by the metric computation module 418 in response to the current location of the reference point 514 .
- the metric can display its value using one or more of a variety of different representations, including textual, numeric, and graphical representations.
- a “distance to highway” metric 514 displays the distance to the nearest major highway as a numeric value (0.5 miles in this example).
- An “estimated noise” metric 526 uses a bar indicator to show the estimated noise at the reference point.
- Two bar graphs 528 , 529 respectively indicate the distance to the nearest commercial property, and the traffic load for nearby roads.
- a “municipality” text box 530 shows the name of the municipality containing the reference point 514 , which in this example is “Mountain View.”
- An “average price per square foot” metric 532 uses a sliding scale and number to indicate its value, while a “tax index” metric 534 shows the cost per year.
- a crime rate metric 535 represents its value as a ranking from one to 10 .
- a “nearest elementary school” metric 536 displays multiple sub-metrics for the school 520 displayed in the map 510 , including the school's ranking (based on external data and/or end-user defined criteria), the distance to it, and whether one would need to cross a highway when traveling from the reference point 514 to the school.
- a “distance to work places” metric 538 displays numeric values indicating the distance to one or more work places defined by the template and/or end-user. In this example, the metric displays the distance to two locations, “Google” and “Acme.”
- a volume control 520 controls the volume of a multimedia metric. The multimedia metric provides audio/visual data to the end-user based on the location of the reference point 514 .
- a “my ranking” metric 542 uses a graphical indicator (three out of four stars) and a numeric indicator (“3”) to rank the designated location using criteria specified by the template and/or end-user.
- the rendering module 422 displays ads received from the ad server module 314 in the map area 510 , metric panel 512 , and/or elsewhere in the display.
- FIG. 6 is a flow chart illustrating steps performed by the mapping engine 118 according to one embodiment. Different embodiments perform additional and/or different steps. In addition, other embodiments perform the steps in different orders. While FIG. 6 illustrates steps from the perspective of the mapping engine 118 , one of skill in the art will recognize that complementary steps are performed by the map server 110 , metrics server 112 , end-user, and/or other entities.
- the mapping engine 118 receives 610 one or more templates.
- the engine 118 can receive pre-made templates from the metrics server 112 or elsewhere on the network 114 .
- mapping engine 118 can present the end-user with a UI that allows the end-user to select from among the templates stored at the metrics server 112 .
- the engine 118 can receive the templates as the end-user uses the client 116 to design new templates and/or modify existing templates.
- the mapping engine 118 stores the templates for subsequent use.
- the mapping engine 118 receives 612 a designation of an active template.
- the end-user can use the UI to select one or more of the templates stored by the mapping engine 118 .
- the active template specifies one or more metrics to display in combination with a map.
- the end-user utilizes the mapping engine 118 to view a map of a geographic region.
- the mapping engine 118 receives mapping data from the map server 110 .
- the mapping engine 118 receives metrics for the region being mapped from the metrics server 112 .
- the metrics received by the mapping engine 118 are specified by the active template.
- the mapping engine 118 displays the map and metrics on a display device 218 of the client 116 .
- the metrics are shown relative to a reference point on the map, and, in one embodiment, the metrics change in real time as the reference point changes.
- the mapping engine 118 determines some computed metrics, such as the location of the nearest school, based on other, metrics and/or map data.
- the mapping engine 118 displays a variety of metrics on a map.
- An end-user can customize both the metrics and the ways that the metrics are displayed. In this fashion, the end-user can view a variety of data on a map while maintaining a high level of comprehension.
Abstract
A mapping engine receives map data from a map server and displays electronic maps. The mapping engine also receives one or more templates that specify metrics to show with the map. The templates specify metrics to accomplish specific tasks, such as house hunting. Metrics describe attributes of the areas shown in the map and are received from a metrics server or another source. Metrics are static or dynamic. Some metrics are explicitly specified, while other metrics are computed in response to the map data and/or other metrics. One or more of the templates are designated as “active,” and the mapping engine displays the metrics of the active templates. The mapping engine displays some metrics on the map and other metrics in a metrics panel.
Description
- This application is a continuation of U.S. application Ser. No. 11/380,304, filed Apr. 26, 2006 which is hereby incorporated in its entirety by reference.
- 1. FIELD OF THE INVENTION
- This invention pertains in general to the visual representation of information and in particular to techniques for displaying information on electronic maps.
- 2. DESCRIPTION OF THE RELATED ART
- People use Internet-based electronic maps for a variety of purposes. Initial Internet-based map services allowed people to view street maps for cities and other geographic areas. People often used these services to obtain driving directions. More recent Internet-based services allow people to view more detailed maps. For example, people can now view satellite imagery, topographical data, and 3-D representations of buildings and other structures on maps. As a result, people now use Internet-based maps for many purposes other than for driving directions, such as for house and job hunting.
- Even though there is a wide variety of map data available on the Internet, there are still many types of data that either cannot be viewed on maps, or are not well-represented on the maps. For example, a person hunting for a house might be interested in school districts, average housing prices, average incomes for a neighborhood, driving distances to work or shopping, etc. This information is often available on the Internet but cannot be viewed on a map.
- If the data can be viewed on a map, the data are often displayed in a manner that reduces the effectiveness of the map. For example, one way to show school districts on a map is to present a static overlay that illustrates the district boundaries. Similarly, average housing prices can be shown by shading regions of the map with different colors representing the prices. A difficulty with representing data in this way is that the map quickly becomes cluttered with too much information and becomes difficult to comprehend.
- Therefore, there is a need in the art for a way to display multiple types of data on a map without making the map difficult to comprehend.
- The above need is met by enabling interactive exploration of a dynamic map through the use of templates that display metrics using a variety of techniques. In one embodiment, a mapping engine displays an electronic map on a display device. The mapping engine includes a template module for receiving a template, the template specifying one or more metrics to display on the electronic map and specifying at least one computed metric that is generated from other metrics, a metric computation module for determining the computed metric specified by the template, and a rendering module for displaying the electronic map and the computed metric specified by the template on the display device.
- In one embodiment, a system for enabling dynamic exploration of an interactive map comprises a metrics data storage module storing metrics describing mapped regions, a template storage module storing templates, each template identifying a set of metrics to display if the template is active, and a communications module receiving requests for certain metrics and providing the metrics in response, and receiving requests for templates and providing the templates in response.
-
FIG. 1 is a high-level block diagram of a computing environment for providing maps and related data according to one embodiment. -
FIG. 2 is a high-level block diagram illustrating a functional view of a computer for use as one of the entities illustrated in the environment ofFIG. 1 according to one embodiment. -
FIG. 3 is a high-level block diagram illustrating modules within the metrics server according to one embodiment. -
FIG. 4 is a high-level block diagram illustrating modules within the mapping engine according to one embodiment. -
FIG. 5 shows an example of a display produced by the rendering module of the mapping engine according to one embodiment. -
FIG. 6 is a flow chart illustrating steps performed by the mapping engine according to one embodiment. - The figures depict an embodiment of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
-
FIG. 1 is a high-level block diagram of acomputing environment 100 for providing maps and related data according to one embodiment. The illustrated environment contains amap server 110 and ametric server 112 coupled to anetwork 114. Multiple clients 116 havingmapping engines 118 are also coupled to thenetwork 114. Generally, themapping engines 118 display maps from themap server 110 and metrics from themetrics server 112. Themapping engines 118 receive templates from themetrics server 112 and/or another entity that specify how to display certain metrics on the map. The templates and metrics are highly-customizable, which allows end-users to view metrics in a manner that maximizes comprehension of the map. -
FIG. 1 and the other figures use like reference numerals to identify like elements. A letter after a reference numeral, such as “116A,” indicates that the text refers specifically to the element having that particular reference numeral. A reference numeral in the text without a following letter, such as “116,” refers to any or all of the elements in the figures bearing that reference numeral (e.g. “116” in the text refers to reference numerals “110A,” “110B,” and/or “110C” in the figures). - The
map server 110 stores and provides data for generating maps. In one embodiment, the map data describe geographic regions, such places on the Earth, Moon, or elsewhere in the solar system, and/or fictional locations. The map data include data such as geographic and political boundaries, topographical data, image data (e.g., satellite imagery), street and address data, data describing geographic features and buildings, and/or other types of data. In one embodiment, themap server 110 provides subsets of the map data in response to queries for data received via thenetwork 114. For example, themap server 110 can receive a query asking for a certain type of satellite imagery centered on a specified latitude/longitude and provide the requested data in response. In one embodiment, themap server 110 provides image data that illustrate the map. In another embodiment, themap server 110 provides raw data that a requestor can use to create a map. - A metrics server 112 stores and provides metrics data describing metrics for the geographic regions described by the map data. The metrics data are static or dynamic and generally describe attributes of the map data. These attributes can include statistical and/or demographic information. For example, the map data can describe the streets of a city while the metric data describe traffic congestion on the streets. Likewise, the metrics data can describe weather conditions, political boundaries and other locations not contained in the map data, such as school districts, locations of businesses and public transportation, etc. Many different types of metrics data are described below, and different embodiments of the
metrics server 112 can provide different metrics data. In some embodiments, themap server 110 andmetrics server 112 are combined. - In one embodiment, the metrics server 112 stores and provides a set of templates describing what metrics to display on a map and how to display them. A template identifies one or more metrics and, for each metric, states one of a variety of different techniques to use to represent the metric on the map. For example, a template can identify a crime rate metric, and state that the crime rate for a given region on a map should be described using a numeric value between 1 and 10. Likewise, a template can specify a location on a map and state that the distance from the center of the currently-displayed map to the location be represented using a vector arrow. Another template can combine the two metrics and techniques described above, e.g. display both the crime rate and distance to the specified location.
- In one embodiment, at least some metrics data and/or templates stored by the
metrics server 112 are provided by end-users of the clients 116. Additionally, in some embodiments there aremultiple metrics servers 112. For example, ametrics server 112 can be dedicated to providing certain types of metrics, such as environmental data or data describing public schools. In one embodiment, at least some templates are provided by a server other than themetrics server 112, such as a dedicated template server or a third party server. - A client 116 is a computer utilized by an end-user to communicate with the
map server 110,metrics server 112, and/or other computers on thenetwork 114. The computer, for example, is a personal computer executing a web browser such as MICROSOFT INTERNET EXPLORER or MOZILLA FIREFOX, that allows the end-user to retrieve and display content from web servers and other computers on thenetwork 114. In other embodiments, the client 116 is a network-capable device other than a personal computer, such as a personal digital assistant (PDA), a cellular telephone, a pager, an in-vehicle navigation system, a television “set-top box” etc. AlthoughFIG. 1 illustrates three clients 116, embodiments of the present invention can have thousands or millions of clients. - In one embodiment, the client executes a
mapping engine 118 that provides an end-user with the ability to specify a geographic location and obtain a map for the location from themap server 110. In addition, the end-user specifies one or more active templates for displaying metrics on the map by selecting a template stored by themetrics server 112 or creating a custom template. Themapping engine 118 displays the map, and displays metrics data from themetrics server 112 as specified by the active template. In one embodiment, the end-user uses themapping engine 118 to specify metrics data and optionally send the metrics data to themetrics server 112 from where it can be utilized by other end-users. Similarly, in one embodiment the end-user sends custom templates to themetrics server 112 from where the templates can be utilized by other end-users. - The
network 114 represents the communication pathways between themap server 110,metrics server 112, and clients 116. In one embodiment, thenetwork 114 is the Internet. Thenetwork 114 can also utilize dedicated or private communications links that are not necessarily part of the Internet. In one embodiment, thenetwork 114 carries traffic using standard communications technologies and/or protocols. Thus, thenetwork 114 can include links using technologies such as Ethernet, 802.11, integrated services digital network (ISDN), digital subscriber line (DSL), asynchronous transfer mode (ATM), etc. Similarly, the networking protocols used by traffic on thenetwork 114 can include multiprotocol label switching (MPLS), the transmission control protocol/Internet protocol (TCP/IP), the hypertext transport protocol (HTTP), the simple mail transfer protocol (SMTP), the file transfer protocol (FTP), etc. The data exchanged over thenetwork 114 can be represented using technologies and/or formats including the hypertext markup language (HTML), the extensible markup language (XML), etc. In addition, all or some of links can be encrypted using conventional encryption technologies such as the secure sockets layer (SSL), Secure HTTP and/or virtual private networks (VPNs). In another embodiment, the entities can use custom and/or dedicated data communications technologies instead of, or in addition to, the ones described above. -
FIG. 2 is a high-level block diagram illustrating a functional view of acomputer 200 for use as one of the entities illustrated in theenvironment 100 ofFIG. 1 according to one embodiment. Illustrated are at least oneprocessor 202 coupled to abus 204. Also coupled to thebus 204 are amemory 206, astorage device 208, akeyboard 210, agraphics adapter 212, apointing device 214, and anetwork adapter 216. Adisplay device 218 is coupled to thegraphics adapter 212. - The
processor 202 may be any general-purpose processor such as an INTEL x86 compatible-CPU. Thestorage device 208 is, in one embodiment, a hard disk drive but can also be any other device capable of storing data, such as a writeable compact disk (CD) or DVD, or a solid-state memory device. Thememory 206 may be, for example, firmware, read-only memory (ROM), non-volatile random access memory (NVRAM), and/or RAM, and holds instructions and data used by theprocessor 202. Thepointing device 214 may be a mouse, track ball, or other type of pointing device, and is used in combination with thekeyboard 210 to input data into thecomputer system 200. Thegraphics adapter 212 displays images and other information on thedisplay device 218. Thedisplay device 218 is, for example, a LCD panel, a projector, a heads-up display for a vehicle, and/or a pair of virtual reality goggles. Thenetwork adapter 216 couples thecomputer 200 to thenetwork 114. - The types of
computers 200 utilized by the entities ofFIG. 1 can vary depending upon the embodiment and the processing power required by the entity. Amap server 110 and/ormetrics server 112 might be provided by a web server running on a powerful computer system comprising one or more blade servers operating in tandem. In contrast, a client 116 might contain asingle processor 202 and have a relativelysmall storage device 208. In many instances the computer lacks one or more of the elements shown inFIG. 2 , such as akeyboard 210, pointingdevice 214,graphics adaptor 212, and/ordisplay device 218. - As is known in the art, the
computer 200 is adapted to execute computer program modules. As used herein, the term “module” refers to computer program logic and/or data for providing the specified functionality. A module can be implemented in hardware, firmware, and/or software. In one embodiment, the modules are stored on thestorage device 208, loaded into thememory 206, and executed by theprocessor 202. -
FIG. 3 is a high-level block diagram illustrating modules within themetrics server 112 according to one embodiment. Other embodiments have different and/or additional modules than the ones shown in the figure. In addition, other embodiments distribute the functionalities among the modules in a different manner. Further, in some embodiments functionalities attributed to themetrics server 112 are performed by other entities such as themap server 110 and/or the clients 116. - A metrics
data storage module 310 stores data describing attributes of the areas on the maps produced by the map server 110 (i.e., “metrics”). As mentioned above, the types of metrics data stored by thestorage module 310 can vary depending upon the embodiment. Metrics data can include, for example, demographic, psychographic, and/or other statistical data describing a population of a region, boundary data describing governmental and quasi-governmental boundaries, cost information describing costs of living, real estate values, and fuel costs, traffic and weather data describing traffic congestion, average temperatures, and air quality, location data describing locations of entities such as offices, commercial centers, schools, religious facilities, hospitals and public transportation, and miscellaneous information describing attributes like average noise, locations of registered sexual offenders, whether ocean views are available from a location etc. Other embodiments store different and/or additional metrics data. - Some metrics are static while others are dynamic. For example, certain metrics, like locations of schools, change infrequently and can be considered static. Other metrics, like current traffic congestion on a road, are dynamic and may change frequently.
- In addition, some metrics are explicitly described by the metrics data, while some metrics are computed from other metrics. Explicit metrics are metrics that are used in their current form. For example, the metrics data may explicitly specify locations of schools and businesses, home values, and crime rates within a region.
- Computed metrics, in contrast, are derived from other explicit and/or computed metrics. For example, the cost of traveling between two points may be computed based on the distance between the points, average fuel costs for the region, and current or historical traffic congestion. Likewise, the average housing prices for a city may be calculated from average prices of smaller units (e.g., ZIP codes) that are explicitly described by other metrics, and whether a location has ocean views may be calculated based on the distance to an ocean, topographical data, and/or data describing the heights of adjacent buildings. These computed metrics are derived by applying functions to other metrics. Similarly, some computed metrics are based on whether conditions are satisfied by one or more other metrics. For example, a metric can indicate whether an area is within five minutes walking distance of a school, within a 10 minute drive to a commercial district, and has average home processes of less than $500 K. In some embodiments, computed metrics are not stored by the metrics
data storage module 310 but rather are computed in real time by themapping engines 118. - In one embodiment, at least some of the metrics data stored by the
storage module 310 are derived from information accessible on thenetwork 114. Certain types of information, such as demographic and weather information, are widely available on the World Wide Web and via other network-accessible electronic documents. Some metrics data stored by thestorage module 310 are provided by commercial data providers and might not be publicly-accessible. Other metrics data stored by thestorage module 310 are provided by end-users of the clients 116. For example, noise data describing the average noise of a geographic location can be submitted by an end-user familiar with the location. - A
template storage module 312 stores templates describing what metrics to display on a map. That is, a template describes one or more metrics to include on a map when the template is applied to the map. A template describes a computed metric by specifying how to derive the metric from other metrics. For example, a template can indicate that explicit school district boundaries are shown on maps viewed using the template, and that the distance from the center of the map to the nearest school is also shown. In one embodiment, the template further describes how the metric is to be displayed. For example, the metric can be displayed as a raw number, as a vector arrow on the map, as a bar graph, as images or 3-D models, etc. In one embodiment, each template in thetemplate storage module 312 is identified by a name or other unique identifier. In an embodiment where there aremultiple metrics servers 112, a template specifies the network address of the server that provide the metrics data. - In one embodiment, the templates in the
storage module 312 are designed for pre-specified tasks. For example, a “home finding” template is designed to assist an end-user in shopping for a new house and references metrics geared to that task. These metrics include, for example, average real estate prices, average education levels, crime rates, distances to locations like commercial districts, schools, and workplaces, noise levels, etc. Other tasks for which templates may exist include vacation planning, job searching, school searching, etc. - In one embodiment, the templates in the
template storage module 312 are created by an administrator and/or other person associated with themetrics server 112 and/or map sever 110. For example, engineers associated with themetrics server 112 develop templates for certain tasks and store the templates in thestorage module 312. In some embodiments, one or more of the templates are created by end-users of the clients 116. The end-users create templates on the clients 116 by specifying the explicit metrics and/or defining functions for computed metrics and upload the templates to thetemplate storage module 312. Thus, thetemplate storage module 312 stores a variety of templates, some created by the operator of themetrics server 112 and others created by end-users and/or other entities. - In one embodiment, an
ad server module 314 serves advertisements and/or other messages to clients. The ads are stored in thead serving module 314 and/or at another location on thenetwork 114. In one embodiment, thead server module 314 selects ads based on a template being used by an end-user and/or the metrics presented by the template. For example, if an end-user selects a “house hunting” template, thead server module 314 serves ads related to real estate, such as ads for real estate agents, mortgage brokers, etc. In another example, if the metrics presented by a template selected by an end-user show average incomes, thead serving module 314 shows ads for more expensive products when the metrics indicate a high average income and for less expensive products when the metrics indicate a lower average income. Other embodiments of thead serving module 314 serve ads based on additional and/or different criteria. - A
communications module 316 supports communications with themap server 110, clients 116, and/or other entities via thenetwork 114. In one embodiment, thecommunications module 316 receives communications from the clients 116 including requests for templates and/or requests for metrics data. In response, thecommunications module 316 provides the templates, data, and/or ads to the requesting clients 116. Similarly, an embodiment of thecommunications module 316 receives new templates and/or metrics data from the clients 116 and/or other entities and provides these inputs to other modules in themetrics server 112 for processing and/or storage. -
FIG. 4 is a high-level block diagram illustrating modules within themapping engine 118 according to one embodiment. Other embodiments have different and/or additional modules than the ones shown in the figure. In addition, other embodiments distribute the functionalities among the modules in a different manner. Further, in some embodiments functionalities attributed to themapping engine 118 are performed by other entities on the client 116 and/or elsewhere on thenetwork 114. - In one embodiment, the
mapping engine 118 is a standalone application. In another embodiment, themapping engine 118 is incorporated into another application. For example, the modules can be executed within an execution environment provided by a general purpose web browser. - A
communications module 410 supports communications with themap server 110,metrics server 112, and/or other entities via thenetwork 114. In one embodiment, thecommunications module 410 uses Asynchronous JavaScript and XML (AJAX) to communicate with themap server 110 and/ormetrics server 112. This technology allows thecommunications module 410 to rapidly exchange small amounts of data with the servers and increases the perceived responsiveness of themapping engine 118 when updating maps, displaying metrics, and/or performing other functions. - In one embodiment, the
communications module 410 submits requests to themap server 110 for map data and receives map data in response. Likewise, thecommunications module 410 submits requests for templates and/or metrics data from themetrics server 112 and receives the requested data in response. Thecommunications module 410 provides received data to the other modules in themapping engine 118 for subsequent processing. In some embodiments, thecommunications module 410 provides templates and/or metrics data to themetrics server 112. - A
map module 412 requests, receives, and stores map data from themap server 110. Themap module 412 provides themap server 110 with a description of a geographic region, such as the name of a city, a latitude/longitude on which the map is centered, a set of coordinates defining a region for which map data are desired, etc. and themap server 110 provides the requested map data. These data are stored by themap module 412 for use by the other modules in themapping engine 118. In one embodiment, themap module 412 caches the map data for a specified period of time, after which the map data are discarded. - A
template module 414 requests, receives, and stores templates. The templates are requested and received from themetrics server 112, another server on thenetwork 114 and/or created by an end-user of the client 116. In one embodiment, one or more templates are designated as “active” by the end-user, meaning that the metrics specified by the template are displayed in combination with a map at the client 116. - A
metric storage module 416 stores metrics data received from themetrics server 112 and/or provided by the end-user. In one embodiment, an end-user can provide metrics data and selectively override data received from themetrics server 112. For example, if the end-user is aware that a noise level at a particular location is higher than the data from themetrics server 112 indicate, the end-user can enter a new noise level. Themetric storage module 416 stores the user-provided data. In some embodiments, themapping engine 118 provides the end-user provided data to themetrics server 112, from where it can be shared with other clients 116. - A
metric computation module 418 determines values of any computed metrics specified and/or required for a template. In one embodiment, themetric computation module 418 operates in real time. Thus, if a computed metric in an active template is the distance between a fixed location and a variable location, themetric computation module 418 updates the metric in real time as the variable location changes. In one embodiment, themetric computation module 418 searches map and/or metric data to find locations where metrics have certain values. For example, themetric computation module 418 can identify areas within five minutes walking distance to schools that have average home prices below $500 K. - A user interface (UI)
module 420 enables and controls end-user interactions with themapping engine 418. In one embodiment, theUI module 420 interacts with the operating system and/or other modules on the client 116 to provide a graphical user interface (GUI) that allows an end-user to use input devices such as keyboards and mice to perform actions such as selecting areas to map, scrolling around the map, and controlling the level of detail (e.g., zoom) of the map. In addition, the GUI allows the end-user to view templates stored by themetrics server 112 and/or themapping engine 118, and designate one or more templates as “active.” - Further, an embodiment of the GUI provided by the
UI module 420 allows the end-user to create new templates and modify existing templates by selecting and/or defining metrics to include in the templates. In addition, theUI module 420 allows the end-user to specify parameters of the templates and/or metrics, such as the name of the template and how to represent and display the metric. - A
rendering module 422 works in combination with theUI module 420 and/or other modules in themapping engine 118 to render a display illustrating the map and metrics from the active templates.FIG. 5 shows an example of adisplay 500 produced by therendering module 422 according to one embodiment. Thisdisplay 500 illustrates a map and metrics that are displayed when a “house hunting” template is active. The illustrated map and metrics are merely representative examples, and other embodiments can show different maps and/or metrics. - The
display 500 has two primary areas, amap area 510 and ametrics panel 512. Generally, themap area 510 shows the map and any metrics that are configured to appear on the map. Themap area 510 includes areference point 514 on which the metrics are based. In one embodiment, the reference point is a location on the map, such as the center of the displayed region. In another embodiment, the reference point is controlled by the mouse or other input device and can be freely moved on the map by the end-user. The metrics are updated in real time as the reference point changes. - An
arrow 516 on the display indicates a direction and distance from thereference point 514 to an ocean view. In this embodiment, the length of thearrow 516 indicates the quality of the view, and the width of an arc associated with the arrow indicates the width of the view. A text label on the map indicates the distance to the view. Theocean view arrow 516 is an example of a computed metric determined by themetric computation module 418 based on other metrics, such as topographical information and building height information. - Three
vector arrows 518A-C on the map, indicate the direction and distance to other points on the map. These other points can be directly specified by the end-user and/or template. For example, the end-user can place a point at a potential employer, e.g., “Google” and thearrow 518A represents the direction and distance to the employer from the reference point. The road to the employer is also labeled with “To Google.” In addition, the points can be specified indirectly. For example,arrow 518B points to the nearest grocery store, a SAFEWAY, andarrow 518C points to thenearest school 520, Lincoln Elementary School. In one embodiment, these indirectly specified points are updated in real time as the reference point changes. - Two
concentric lines 522A-B represent boundaries described in the template. For example, theinnermost line 522A defines areas within 5 minutes driving time, and the outermost line defines areas within 10 minutes driving time. Other embodiments represent other and/or different data. - In one embodiment, metrics are displayed as graphical images and/or 3-D models. For example, an end-user can hover the cursor over the location of a house on the map, and cause the
display 500 to show an image and/or 3-D model of the house. The image/model can appear in themap area 510,metrics panel 512, and/or elsewhere on thedisplay 500. - The
metrics panel 512 displays metrics that are configured to appear in the panel. The illustrateddisplay 500 shows the panel adjacent to the map. In other embodiments, the panel is located at other locations and/or is in a floating window that can be moved and manipulated by the end-user. Themetrics panel 512 includes a variety of different metrics. In one embodiment, each computed metric is determined in real time by themetric computation module 418 in response to the current location of thereference point 514. The metric can display its value using one or more of a variety of different representations, including textual, numeric, and graphical representations. - In the illustrated example of the
metrics panel 512, a “distance to highway” metric 514 displays the distance to the nearest major highway as a numeric value (0.5 miles in this example). An “estimated noise” metric 526 uses a bar indicator to show the estimated noise at the reference point. Twobar graphs text box 530 shows the name of the municipality containing thereference point 514, which in this example is “Mountain View.” - An “average price per square foot” metric 532 uses a sliding scale and number to indicate its value, while a “tax index” metric 534 shows the cost per year. A crime rate metric 535 represents its value as a ranking from one to 10. A “nearest elementary school” metric 536 displays multiple sub-metrics for the
school 520 displayed in themap 510, including the school's ranking (based on external data and/or end-user defined criteria), the distance to it, and whether one would need to cross a highway when traveling from thereference point 514 to the school. - A “distance to work places” metric 538 displays numeric values indicating the distance to one or more work places defined by the template and/or end-user. In this example, the metric displays the distance to two locations, “Google” and “Acme.” A
volume control 520 controls the volume of a multimedia metric. The multimedia metric provides audio/visual data to the end-user based on the location of thereference point 514. Finally, a “my ranking” metric 542 uses a graphical indicator (three out of four stars) and a numeric indicator (“3”) to rank the designated location using criteria specified by the template and/or end-user. Although not shown inFIG. 5 , in one embodiment, therendering module 422 displays ads received from thead server module 314 in themap area 510,metric panel 512, and/or elsewhere in the display. -
FIG. 6 is a flow chart illustrating steps performed by themapping engine 118 according to one embodiment. Different embodiments perform additional and/or different steps. In addition, other embodiments perform the steps in different orders. WhileFIG. 6 illustrates steps from the perspective of themapping engine 118, one of skill in the art will recognize that complementary steps are performed by themap server 110,metrics server 112, end-user, and/or other entities. - The
mapping engine 118 receives 610 one or more templates. Theengine 118 can receive pre-made templates from themetrics server 112 or elsewhere on thenetwork 114. For example,mapping engine 118 can present the end-user with a UI that allows the end-user to select from among the templates stored at themetrics server 112. In addition, theengine 118 can receive the templates as the end-user uses the client 116 to design new templates and/or modify existing templates. In one embodiment, themapping engine 118 stores the templates for subsequent use. - The
mapping engine 118 receives 612 a designation of an active template. For example, the end-user can use the UI to select one or more of the templates stored by themapping engine 118. The active template specifies one or more metrics to display in combination with a map. - At some point, the end-user (or another entity) utilizes the
mapping engine 118 to view a map of a geographic region. As part of this process, themapping engine 118 receives mapping data from themap server 110. In addition, themapping engine 118 receives metrics for the region being mapped from themetrics server 112. The metrics received by themapping engine 118 are specified by the active template. - The
mapping engine 118 displays the map and metrics on adisplay device 218 of the client 116. The metrics are shown relative to a reference point on the map, and, in one embodiment, the metrics change in real time as the reference point changes. Themapping engine 118 determines some computed metrics, such as the location of the nearest school, based on other, metrics and/or map data. - Thus, the
mapping engine 118 displays a variety of metrics on a map. An end-user can customize both the metrics and the ways that the metrics are displayed. In this fashion, the end-user can view a variety of data on a map while maintaining a high level of comprehension. - The above description is included to illustrate the operation of the preferred embodiments and is not meant to limit the scope of the invention. The scope of the invention is to be limited only by the following claims. From the above discussion, many variations will be apparent to one skilled in the relevant art that would yet be encompassed by the spirit and scope of the invention.
Claims (19)
1. A mapping engine for displaying an electronic map on a display device, comprising:
a template module for receiving a template, the template specifying one or more metrics to display on the electronic map including at least one computed metric that is generated responsive to other metrics;
a metric computation module for determining the computed metric specified by the template; and
a rendering module for displaying the electronic map and the metrics specified by the template on the display device.
2. The mapping engine of claim 1 , further comprising:
a map module for receiving map data for the electronic map from a map server via a network.
3. The mapping engine of claim 1 , further comprising:
a user interface module for receiving user input manipulating the electronic map displayed by the rendering engine,
wherein the metric computation module is adapted to determine the computed metric responsive to the manipulations of the electronic map, and
wherein rendering engine is adapted to update the map and metrics displayed on the display device responsive to the manipulations of the electronic map.
4. The mapping engine of claim 1 , further comprising:
a user interface module for receiving user input manipulating the template received by the template module, wherein the manipulations alter the metrics specified by the template;
wherein the metric computation module is adapted to determine the computed metric responsive to the manipulations of the template, and
wherein rendering engine is adapted to update the map and metrics displayed on the display device responsive to the manipulations of the template.
5. The mapping engine of claim 4 , further comprising:
a communications module adapted to provide the manipulated template to a server via a network.
6. The mapping engine of claim 1 , wherein the template module is adapted to store a plurality of templates, the templates specifying different metrics to display on the map, one or more of the templates are designated as “active,” the metric computation module is adapted to determine computed metrics specified by the active templates, and the rendering module is adapted to display the metrics specified by the active templates.
7. The mapping engine of claim 1 , further comprising:
a metric module for receiving the metrics from a metrics server via a network.
8. The mapping engine of claim 7 , wherein the mapping engine is adapted to execute on a computer, and wherein the metric module is adapted to receive a metric from an end-user of the computer.
9. The mapping engine of claim 8 , further comprising:
a communications module adapted to provide the metric received from the end-user to the metrics server via the network.
10. The mapping engine of claim 1 , wherein the template further specifies how to display a metric and wherein the rendering module displays the metric on the electronic map as specified by the template.
11. The mapping engine of claim 10 , wherein the rendering module is further adapted to display a map area and a metrics panel on the display device, and to selectively display the metrics in the map area and/or the metrics panel as specified by the template.
12. A computer program product having a computer-readable medium having computer program logic embodied therein for displaying an electronic map on a display device, the computer program logic comprising:
a template module for receiving a template, the template specifying one or more metrics to display on the electronic map including at least one computed metric that is generated responsive to other metrics;
a metric computation module for determining the computed metric specified by the template; and
a rendering module for displaying the electronic map and the metrics specified by the template on the display device.
13. The computer program product of claim 12 , further comprising:
a map module for receiving map data for the electronic map from a map server via a network.
14. The computer program product of claim 12 , further comprising:
a metric module for receiving the metrics from a metrics server via a network.
15. The computer program product of claim 12 , further comprising:
a user interface module for receiving user input manipulating the electronic map displayed by the rendering engine,
wherein the metric computation module is adapted to dynamically determine the computed metric responsive to the manipulations of the electronic map, and
wherein rendering engine is adapted to update the map and metrics displayed on the display device responsive to the manipulations of the electronic map.
16. The computer program product of claim 12 , further comprising:
a user interface module for receiving user input manipulating the template received by the template module, wherein the manipulations alter the metrics specified by the template;
wherein the metric computation module is adapted to determine the computed metric responsive to the manipulations of the template, and
wherein rendering engine is adapted to update the map and metrics displayed on the display device responsive to the manipulations of the template.
17. The computer program product of claim 12 , wherein the template module is adapted to store a plurality of templates, the templates specifying different metrics to display on the map, one or more of the templates are designated as “active,” the metric computation module is adapted to determine computed metrics specified by the active templates, and the rendering module is adapted to display the metrics specified by the active templates.
18. The computer program product of claim 12 , wherein the template further specifies how to display a metric and wherein the rendering module displays the metric on the electronic map as specified by the template.
19. The computer program product of claim 18 , wherein the rendering module is further adapted to display a map area and a metrics panel on the display device, and to selectively display the metrics in the map area and/or the metrics panel as specified by the template.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/614,266 US20100045699A1 (en) | 2006-04-26 | 2009-11-06 | Dynamic Exploration Of Electronic Maps |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/380,304 US7616217B2 (en) | 2006-04-26 | 2006-04-26 | Dynamic exploration of electronic maps |
US12/614,266 US20100045699A1 (en) | 2006-04-26 | 2009-11-06 | Dynamic Exploration Of Electronic Maps |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/380,304 Continuation US7616217B2 (en) | 2006-04-26 | 2006-04-26 | Dynamic exploration of electronic maps |
Publications (1)
Publication Number | Publication Date |
---|---|
US20100045699A1 true US20100045699A1 (en) | 2010-02-25 |
Family
ID=38656314
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/380,304 Active 2027-06-24 US7616217B2 (en) | 2006-04-26 | 2006-04-26 | Dynamic exploration of electronic maps |
US12/614,266 Abandoned US20100045699A1 (en) | 2006-04-26 | 2009-11-06 | Dynamic Exploration Of Electronic Maps |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/380,304 Active 2027-06-24 US7616217B2 (en) | 2006-04-26 | 2006-04-26 | Dynamic exploration of electronic maps |
Country Status (2)
Country | Link |
---|---|
US (2) | US7616217B2 (en) |
WO (1) | WO2007127702A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090216434A1 (en) * | 2008-02-26 | 2009-08-27 | Alex Panganiban | Method and apparatus for determining and displaying meaningful cross street for navigation system |
US20230308837A1 (en) * | 2012-06-12 | 2023-09-28 | Sony Group Corporation | Method, non-transitory computer readable storage medium, device and system that categorizes map information as static map information and dynamic map information and updates static map information differently from dynamic map information |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122341B1 (en) | 2006-06-17 | 2012-02-21 | Google Inc. | Sharing geographical information between users |
WO2008002630A2 (en) * | 2006-06-26 | 2008-01-03 | University Of Southern California | Seamless image integration into 3d models |
US20090100342A1 (en) * | 2007-10-12 | 2009-04-16 | Gabriel Jakobson | Method and system for presenting address and mapping information |
US8638327B2 (en) * | 2007-11-14 | 2014-01-28 | Microsoft Corporation | Tiled projections for planar processing of round earth data |
US20090132967A1 (en) * | 2007-11-16 | 2009-05-21 | Microsoft Corporation | Linked-media narrative learning system |
US8584044B2 (en) | 2007-11-16 | 2013-11-12 | Microsoft Corporation | Localized thumbnail preview of related content during spatial browsing |
US8504945B2 (en) * | 2008-02-01 | 2013-08-06 | Gabriel Jakobson | Method and system for associating content with map zoom function |
EP2274711A4 (en) * | 2008-03-31 | 2012-12-19 | Univ Southern California | Estimating pose of photographic images in 3d earth model using human assistance |
TWI425408B (en) * | 2008-08-29 | 2014-02-01 | Htc Corp | Method and apparatus for operating view of electronic map and computer program product using the method |
CA2736168C (en) | 2008-09-09 | 2018-04-10 | United Parcel Service Of America, Inc. | Systems and methods of utilizing telematics data to improve fleet management operations |
US11482058B2 (en) | 2008-09-09 | 2022-10-25 | United Parcel Service Of America, Inc. | Systems and methods for utilizing telematics data to improve fleet management operations |
US9336695B2 (en) * | 2008-10-13 | 2016-05-10 | Yahoo! Inc. | Method and system for providing customized regional maps |
CH700208B1 (en) * | 2009-01-07 | 2015-02-27 | Dr Marc Pierre Jaccard | Portable navigation device |
US8402058B2 (en) * | 2009-01-13 | 2013-03-19 | Ensoco, Inc. | Method and computer program product for geophysical and geologic data identification, geodetic classification, organization, updating, and extracting spatially referenced data records |
WO2010103794A1 (en) * | 2009-03-09 | 2010-09-16 | 株式会社 東芝 | Car navigation system and individual functional device |
WO2011085104A1 (en) * | 2010-01-06 | 2011-07-14 | Wind Products Inc. | Methods and systems for locating wind turbines |
US9829340B2 (en) | 2010-11-18 | 2017-11-28 | Google Inc. | Analysis of interactive map usage patterns |
US20120213416A1 (en) * | 2011-02-23 | 2012-08-23 | Google Inc. | Methods and systems for browsing heterogeneous map data |
US9953468B2 (en) | 2011-03-31 | 2018-04-24 | United Parcel Service Of America, Inc. | Segmenting operational data |
US9129449B2 (en) | 2011-03-31 | 2015-09-08 | United Parcel Service Of America, Inc. | Calculating speed and travel times with travel delays |
US9208626B2 (en) | 2011-03-31 | 2015-12-08 | United Parcel Service Of America, Inc. | Systems and methods for segmenting operational data |
US9117190B2 (en) | 2011-03-31 | 2015-08-25 | United Parcel Service Of America, Inc. | Calculating speed and travel times with travel delays |
US8996287B2 (en) | 2011-03-31 | 2015-03-31 | United Parcel Service Of America, Inc. | Calculating speed and travel times with travel delays |
US9070100B2 (en) | 2011-03-31 | 2015-06-30 | United Parcel Service Of America, Inc. | Calculating speed and travel times with travel delays |
NL2008690C2 (en) | 2011-04-25 | 2014-07-15 | Google Inc | Dynamic highlighting of geographic entities on electronic maps. |
US9311726B2 (en) * | 2012-08-30 | 2016-04-12 | Fannie Mae | System and method for mapping and comparing choroplethic housing statistics |
EP2731071A1 (en) * | 2012-11-07 | 2014-05-14 | Instytut Podstaw Informatyki Polskiej Akademii Nauk | Method of providing user interface, especially for conducting commercial transactions over the internet |
US9805521B1 (en) | 2013-12-03 | 2017-10-31 | United Parcel Service Of America, Inc. | Systems and methods for assessing turns made by a vehicle |
US9594773B2 (en) | 2014-05-20 | 2017-03-14 | Vesmir, Inc. | Pattern-retaining method for displaying large volumes of geographic based data using statistical depopulation |
US10309788B2 (en) | 2015-05-11 | 2019-06-04 | United Parcel Service Of America, Inc. | Determining street segment headings |
US10855835B1 (en) * | 2017-08-28 | 2020-12-01 | Wells Fargo Bank, N.A. | Predicted location offers leveraging community based cost of living recommendations |
US11474672B2 (en) * | 2020-07-27 | 2022-10-18 | Kathleen A. Lappe | Electronic devices and methods for selecting and displaying multimodal content |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020184043A1 (en) * | 2001-06-04 | 2002-12-05 | Egidio Lavorgna | Systems and methods for managing business metrics |
US20030194057A1 (en) * | 2002-03-27 | 2003-10-16 | Piet Dewaele | Method of performing geometric measurements on digital radiological images |
US20040027258A1 (en) * | 2002-04-30 | 2004-02-12 | Telmap Ltd | Template-based map distribution system |
US20040122936A1 (en) * | 2002-12-20 | 2004-06-24 | Ge Mortgage Holdings, Llc | Methods and apparatus for collecting, managing and presenting enterprise performance information |
US20050144592A1 (en) * | 2003-12-24 | 2005-06-30 | Below Paul A. | Metrics capability self assessment |
US20050209944A1 (en) * | 2004-03-02 | 2005-09-22 | Ballow John J | Total return to shareholders target setting |
US20070116357A1 (en) * | 2005-11-23 | 2007-05-24 | Agfa-Gevaert | Method for point-of-interest attraction in digital images |
US20070149214A1 (en) * | 2005-12-13 | 2007-06-28 | Squareloop, Inc. | System, apparatus, and methods for location managed message processing |
US20070225986A1 (en) * | 2001-09-28 | 2007-09-27 | Siebel Systems, Inc. | Method and system for instantiating entitlements into contracts |
US20080234752A1 (en) * | 2007-03-21 | 2008-09-25 | The University Of North Carolina At Chapel Hill | Surgical plate puller devices and methods for use with surgical bone screw/plate systems |
US20080288306A1 (en) * | 2001-10-11 | 2008-11-20 | Visual Sciences Technologies, Llc | System, method and computer program product for processing and visualization of information |
US20080313532A1 (en) * | 2001-03-06 | 2008-12-18 | International Business Machines Corporation | Method and apparatus for repurposing formatted content |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026067A1 (en) * | 2002-06-14 | 2006-02-02 | Nicholas Frank C | Method and system for providing network based target advertising and encapsulation |
US6937751B2 (en) * | 2003-07-30 | 2005-08-30 | Radiological Imaging Technology, Inc. | System and method for aligning images |
US7870014B2 (en) * | 2004-10-08 | 2011-01-11 | Accenture Global Services Gmbh | Performance management system |
-
2006
- 2006-04-26 US US11/380,304 patent/US7616217B2/en active Active
-
2007
- 2007-04-23 WO PCT/US2007/067233 patent/WO2007127702A2/en active Application Filing
-
2009
- 2009-11-06 US US12/614,266 patent/US20100045699A1/en not_active Abandoned
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313532A1 (en) * | 2001-03-06 | 2008-12-18 | International Business Machines Corporation | Method and apparatus for repurposing formatted content |
US20020184043A1 (en) * | 2001-06-04 | 2002-12-05 | Egidio Lavorgna | Systems and methods for managing business metrics |
US20070225986A1 (en) * | 2001-09-28 | 2007-09-27 | Siebel Systems, Inc. | Method and system for instantiating entitlements into contracts |
US20080288306A1 (en) * | 2001-10-11 | 2008-11-20 | Visual Sciences Technologies, Llc | System, method and computer program product for processing and visualization of information |
US20030194057A1 (en) * | 2002-03-27 | 2003-10-16 | Piet Dewaele | Method of performing geometric measurements on digital radiological images |
US20040027258A1 (en) * | 2002-04-30 | 2004-02-12 | Telmap Ltd | Template-based map distribution system |
US20050033511A1 (en) * | 2002-04-30 | 2005-02-10 | Telmap Ltd. | Dynamic navigation system |
US20040122936A1 (en) * | 2002-12-20 | 2004-06-24 | Ge Mortgage Holdings, Llc | Methods and apparatus for collecting, managing and presenting enterprise performance information |
US20050144592A1 (en) * | 2003-12-24 | 2005-06-30 | Below Paul A. | Metrics capability self assessment |
US20050209944A1 (en) * | 2004-03-02 | 2005-09-22 | Ballow John J | Total return to shareholders target setting |
US20070116357A1 (en) * | 2005-11-23 | 2007-05-24 | Agfa-Gevaert | Method for point-of-interest attraction in digital images |
US20070149214A1 (en) * | 2005-12-13 | 2007-06-28 | Squareloop, Inc. | System, apparatus, and methods for location managed message processing |
US20080234752A1 (en) * | 2007-03-21 | 2008-09-25 | The University Of North Carolina At Chapel Hill | Surgical plate puller devices and methods for use with surgical bone screw/plate systems |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090216434A1 (en) * | 2008-02-26 | 2009-08-27 | Alex Panganiban | Method and apparatus for determining and displaying meaningful cross street for navigation system |
US8346465B2 (en) * | 2008-02-26 | 2013-01-01 | Apline Electronics, Inc | Method and apparatus for determining and displaying meaningful cross street for navigation system |
US20230308837A1 (en) * | 2012-06-12 | 2023-09-28 | Sony Group Corporation | Method, non-transitory computer readable storage medium, device and system that categorizes map information as static map information and dynamic map information and updates static map information differently from dynamic map information |
Also Published As
Publication number | Publication date |
---|---|
WO2007127702A3 (en) | 2008-05-08 |
US7616217B2 (en) | 2009-11-10 |
US20080059205A1 (en) | 2008-03-06 |
WO2007127702A2 (en) | 2007-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7616217B2 (en) | Dynamic exploration of electronic maps | |
US11288292B2 (en) | Entity display priority in a distributed geographic information system | |
US9449333B2 (en) | Online advertising associated with electronic mapping systems | |
JP6184961B2 (en) | Managing map elements using collective feature identifiers | |
Karimi et al. | Personalized accessibility map (PAM): A novel assisted wayfinding approach for people with disabilities | |
Klippel et al. | You-are-here maps: Creating spatial awareness through map-like representations | |
US20090319573A1 (en) | Internet based geographic information system | |
Lin et al. | The effects of gender differences on operational performance and satisfaction with car navigation systems | |
Li | Augmented reality landmarks on windshield and their effects on the acquisition of spatial knowledge in autonomous vehicles | |
KR20010113202A (en) | Method For Indication Of Advertisement by using position information In Electronic Map | |
US20220316917A1 (en) | Dynamic Generation and Suggestion of Tiles Based on User Context | |
Sabo et al. | Toward Self-Generalizing objects and On-the-Fly map generalization | |
Hampe et al. | Adaptive maps for mobile applications | |
Harish et al. | Displaying the Map Server Data using Arc-GIS server JavaScript API | |
Lerin et al. | Making a pictorial and verbal travel trace from a GPS trace | |
Neis et al. | Extending the OGC OpenLS Route Service to 3D for an interoperable realisation of 3D focus maps with landmarks | |
Treves | Google Earth and cartography | |
Claudia et al. | Can 3D Visualizations Really Convince Small Island Coastal Communities About the True Risks of Sea Level Rise? | |
Mwangi et al. | Implementing a real estate management system using open source GIS software | |
Schiefelbein | Prototype development of machine-to-machine operational nephanalysis | |
Kuria et al. | IMPLEMENTING A REAL ESTATE MANAGEMENT SYSTEM USING OPEN SOURCE GIS SOFTWARE | |
Liu | B. Sc., Nankai, Tianjin, China, 1987 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |