Maps provide an accessible and efficient visualization method for representing geospatial reality. Since maps are configured to reflect real-world geography, individuals can visually determine the Euclidean distance between points on a map. For example, an individual viewing a map representing an urban area, with points of interest connected by available transportation infrastructure (such as walkways, roadways, bus and subway routes, etc.), can visually determine the travel distance between two points based on the total length of a route along the connections multiplied by a scale factor. However, due to various factors such as traffic along the transportation infrastructure, differences in speed limits, road distribution and structure, weather conditions, and mass-transit schedules, the travel time between different points may vary significantly even when the travel distances are substantially the same. As a result, it can be challenging for individuals to predict travel time based on conventional maps.
Various techniques for representing travel times on maps have been used to overcome these shortcomings. For example, some real-time mapping systems have shown roadways with various colors to highlight different levels of traffic congestion in an attempt to enhance geospatial information with geotemporal information. However, colors corresponding to traffic congestion are limited in the precision of information that may be conveyed and require an individual to mentally combine roadways of different colors and different lengths to determine travel time. Alternatively, some systems have generated geographically warped maps in which points on the map are located according to their travel time from other points.
The techniques introduced herein may be better understood by referring to the following Detailed Description in conjunction with the accompanying drawings, in which like reference numerals indicate identical or functionally similar elements.
The present technology is generally directed to methods and systems for generating, presenting, and interacting with perceptually-intuitive distance cartograms. A distance cartogram is a specialized map projection that visually conveys a mapping variable, such as travel cost, as a substitute for distance. Specifically, a distance cartogram of travel times (hereinafter, a “distance cartogram”) can alter displayed distances between a user-specified origin and other locations on a map, with respect to the travel time between them, to allow users to visually decode the travel time between locations on the map. A distance cartogram can exemplify a type of map that presents geotemporal information instead of or in addition to geospatial information—the latter typically presented on a standard geographic map.
However, creating a distance cartogram can be challenging, since unevenly distributed road infrastructure and unpredictable traffic conditions can introduce discrepancies between the travel time and the travel distance between locations. Additionally, implementation of distance cartogram typically requires construction of a time space (i.e., the space that specifies the shortest travel time from an origin to the rest of locations) per each user interaction (e.g., map panning or zooming) in real time. Accordingly, the computational costs required for constructing interactive distance cartogram can be very high, which presents challenges to the enablement of a variety of map interaction types, such as panning or zooming, in distance cartograms. As will be described in detail below, embodiments of the presently disclosed technology are expected to improve scalability and presentation of distance cartograms. Illustratively, some implementations of the presently disclosed technology can instantiate an interactive system that enables real world users to explore locations with distance cartograms.
In one example, a system configured in accordance with some embodiments of the presently disclosed technology can generate a distance cartogram with respect to an origin location based, at least in part, on region partitioning at varied and controlled granularity. Illustratively, the region partitioning-based method can construct a time space within a few rounds of travel time computations (e.g., via API calls), which enable on-the-fly time space construction. The region partitioning can apply different partitioning granularities based on the degree of traffic congestion of areas shown on a map. For example, some areas (e.g., city centers or downtown areas) with traffic congestion can be subdivided into regions of increasingly smaller sizes, which enables capturing of travel time in a fine-grained manner; whereas areas with less traffic can be subdivided into larger regions. Varied and controlled partitioning (e.g., via recursive subdivision) does not rely on a pre-defined road network structure as typically used in time space construction, and therefore improves computational scalability so that live traffic can be reflected in an accurate manner. The system can control or adjust the accuracy of a constructed time space and/or the amount of time it takes to yield the time space by changing threshold criteria (e.g., measures of travel time variance within a region) for region subdivisions.
The system can enable various types of map interaction designed to improve perceived quality of spatial exploration in real settings. Presenting useful map interactions is expected to lower the barrier of unfamiliarity with distance cartograms and increase the chance of user adoption. For example, a user interface of the system enables “switching,” which smoothly animates the map layout between a “standard” map (e.g., Web Mercator map) and a distance cartogram. Switching allows users to choose a map layout based on their search context and helps gain familiarity with distance cartograms. As another example, a user interface of the system can enable “zooming and panning,” which allows for spatial exploration of distance cartograms by users. As a further example, a user interface of the system enables “highlighting” applicable to isochrones (e.g., circular visual indicators that present a set travel time from the origin). Highlighting allows users to easily compare any location on a map by creating one's own isochrones and resizing (e.g., by dragging).
Several implementations are discussed below in more detail with reference to the figures.
CPU 110 can be a single processing unit or multiple processing units in a device or distributed across multiple devices. CPU 110 can be coupled to other hardware devices, for example, with the use of a bus, such as a PCI bus or SCSI bus, The CPU 110 can communicate with a hardware controller for devices, such as for a display 130. Display 130 can be used to display text and graphics. In some examples, display 130 provides graphical and textual visual feedback to a user. In some implementations, display 130 includes the input device as part of the display, such as when the input device is a touchscreen or is equipped with an eye direction monitoring system. In some implementations, the display is separate from the input device. Examples of display devices are: an LCD display screen, an LED display screen, a projected, holographic, or augmented reality display (such as a heads-up display device or a head-mounted device), and so on. Other I/O devices 140 can also be coupled to the processor, such as a network card, video card, audio card, USB, FireWire or other external device, camera, printer, speakers, CD-ROM drive, DVD drive, disk drive, or Blu-Ray device.
In some implementations, the device 100 also includes a communication device capable of communicating wirelessly or wire-based with a network node. The communication device can communicate with another device or a server through a network using, for example, TCP/IP protocols. Device 100 can utilize the communication device to distribute operations across multiple network devices.
The CPU 110 can have access to a memory 150. A memory includes one or more of various hardware devices for volatile and non-volatile storage, and can include both read-only and writable memory. For example, a memory can comprise random access memory (RAM), CPU registers, read-only memory (ROM), and writable non-volatile memory, such as flash memory, hard drives, floppy disks, CDs, DVDs, magnetic storage devices, tape drives, device buffers, and so forth. A memory is not a propagating signal divorced from underlying hardware; a memory is thus non-transitory. Memory 150 can include program memory 160 that stores programs and software, such as an operating system 162, distance cartogram generator 164, and other application programs 166. Memory 150 can also include data memory 170 that can include GIS data describing transportation infrastructure for geographical regions, geospatial graphs, travel conditions, configuration data, settings, user options or preferences, etc., which can be provided to the program memory 160 or any element of the device 100 as bases for distance cartogram generation and/or presentation.
Some implementations can be operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the technology include, but are not limited to, personal computers, server computers, handheld or laptop devices, cellular telephones, wearable electronics, gaming consoles, tablet devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, or the like.
In some implementations, server 210 can be an edge server which receives client requests and coordinates fulfillment of those requests through other servers, such as servers 220A-C. Server computing devices 210 and 220 can comprise computing systems, such as device 100. Though each server computing device 210 and 220 is displayed logically as a single server, server computing devices can each be a distributed computing environment encompassing multiple computing devices located at the same or at geographically disparate physical locations. In some implementations, each server 220 corresponds to a group of servers.
Client computing devices 205 and server computing devices 210 and 220 can each act as a server or client to other server/client devices. Server 210 can connect to a database 215. Servers 220A-C can each connect to a corresponding database 225A-C. As discussed above, each server 220 can correspond to a group of servers, and each of these servers can share a database or can have their own database. Databases 215 and 225 can warehouse (e.g. store) information such as GIS data, geospatial graphs, and thematic data characterizing travel conditions. Though databases 215 and 225 are displayed logically as single units, databases 215 and 225 can each be a distributed computing environment encompassing multiple computing devices, can be located within their corresponding server, or can be located at the same or at geographically disparate physical locations.
Network 230 can be a local area network (LAN) or a wide area network (WAN), but can also be other wired or wireless networks. Network 230 may be the Internet or some other public or private network. Client computing devices 205 can be connected to network 230 through a network interface, such as by wired or wireless communication. While the connections between server 210 and servers 220 are shown as separate connections, these connections can be any kind of local, wide area, wired, or wireless network, including network 230 or a separate public or private network.
General software 320 can include various applications including an operating system 322, local programs 324, and a basic input output system (BIOS) 326. Specialized components 340 can be subcomponents of a general software application 320, such as local programs 324. Specialized components 340 can include graph generator 344, granularity controller 346, intra-region calculator 348, distortion controller 350, and components which can be used for transferring data and controlling the specialized components, such as interface 342. In some implementations, components 300 can be in a computing system that is distributed across multiple computing devices or can be an interface to a server-based application executing one or more of specialized components 340.
User input and data can be received by the interface 342. For example, data from external systems such as current or past travel conditions, data for various graphs such as of road or other transportation infrastructure (e.g., GIS data), and indications of user input indicating interactions with a user interface (UI) such as graph point indications, zoom levels, focus areas, search terms, or time selections can be received by the interface 342.
Graph generator 344 can access, such as through interface 342, transportation infrastructure data, including GIS data and other data describing transportation infrastructures of a region, and generate geospatial graphs for the region. In various implementations, the data describing transportation infrastructures can include roadways, walkways, railways, and public transportation routes. In some implementations, the graph generator 344 can generate a graph by creating control nodes representing intersections or interchanges corresponding to the geographic locations at which infrastructure elements overlap. The geospatial graphs generated by the graph generator 344 or by third party service(s) can correspond to different zoom levels that include different elements of the transportation infrastructure. The system can maintain, such as in a memory or database, the geospatial graphs for use by the system in generating distance cartograms for display to a user.
The granularity controller 346 can determine and set granularity levels for region partitioning. Illustratively, a region of a geospatial graph can be divided into multiple smaller regions for further processing. The granularity controller 346 can set the granularity level for partitioning by indicating a size, shape, orientation, location, and/or other conditions or constraints applicable to individual regions that can result from the partitioning.
The intra-region calculator 348 can compute or otherwise determine intra-region variance of travel time within each region. The intra-region variance can be one or more statistics that describe the distribution of estimated travel times within a region. The variance value can be used to determine whether the region is to be partitioned further at a changed granularity level.
The distortion controller 350 can control the distortion between a standard map (e.g., representing travel distance) and a corresponding distance cartogram. The distortion controller can control the distortion based on the shape and/or topology of a transportation infrastructure (e.g., a road network). When control points from a standard map are gradually shifted to their target locations on a distance cartogram, the distortion controller 350 can measure a shape-preservation metric (e.g., differences of edge length ratios and angles between the two shapes) and/or evaluate topology violations. The shift can be stopped if the shape-preservation metric deviates from certain range or value and/or if topology violation is detected.
Those skilled in the art will appreciate that the components illustrated in
Typically, three primary steps are involved in a distance cartogram construction process:
Presenting accurate live travel time using the typical distance cartogram generation techniques can be difficult. In part, this is due to the high computational costs for constructing a time space (Step 2) per each map interaction query by the user (e.g., zooming or a panning). In most cases, constructing a time space requires execution of a shortest path algorithm from an origin. Illustratively, to ensure constructing a time space within a targeted response time, it is necessary to maintain the number of nodes and edges to a certain degree so that the system can finish execution of the shortest path algorithm within the time. However, the size of a network can quickly grow larger than a system can handle within the given time, especially when considering a complex road network of urban areas.
At block 502, process 500 can include obtaining a geospatial graph. The geospatial graph can describe the transportation infrastructure of a region, in which points, lines, and/or other geographic indicators are placed according to their geospatial relationships (e.g., representing travel distance). The obtained geospatial graph can be for a particular geographic region, and at a particular level of zoom, according to the instruction of, for example, a user. Process 500 can retrieve the geospatial graph from a database or other data store where geospatial graphs for the region and other regions, at various levels of zoom, can be maintained. In various embodiments, the geospatial graph can represent a chip design layout, tourist sites topology, airline travel routes, city layout, or other physical space.
At block 504, process 500 can include obtaining the selection of an origin or starting location within the geospatial graph. The selected origin location can be a user identified point on the graph, the result from a search, a default point such as the center of a current view area, a system selected point (such as an identified accident site), or another point selected by a system or system user.
At block 506, process 500 can include performing region partitioning at a current granularity level. Illustratively, the geospatial graph can be divided into multiple smaller regions for further processing. A current granularity level can be a basis for the partitioning. The current granularity level can indicate, for example, a size, shape, orientation, location, and/or other conditions or constraints applicable to individual regions that can result from the partitioning. In some embodiments, the region partitioning can be based on the selected origin location, such as dividing at least a portion of the geospatial graph into multiple smaller regions (e.g., in triangle, rectangle, and/or other polygon shapes) that have the origin as a common vertex (or corner). The regions resulted from the partitioning can be added to a working data set for further processing.
As an example,
At block 508, process 500 can include determining intra-region travel time variance. Illustratively, for each region included in the working data set, process 500 can determine travel times between multiple locations within the region and the origin location. The travel time determining can be based on live travel conditions, for example, based on data indicating current travel throughput through the transportation infrastructure (i.e., traffic conditions) as well as other concurrent factors that can influence travel time. In some embodiments, the travel time determining can be achieved via one or more third party services. For example, with reference to the quadtree based partitioning as shown in
Process 500 can then determine intra-region variance of travel time for each region. Illustratively, the intra-region variance can be one or more statistics (e.g., maximal differential, minimal differential, standard deviation, or the like) calculated based on the travel times determined for a corresponding region. For example, with reference to the quadtree based partitioning as shown in
At decision block 510, process 500 can include determining whether there exists a region in the working data set to partition further, based on the intra-region travel time variance of the region. If so, process 500 proceeds to block 512; otherwise process 500 proceeds to block 514. For a region that is currently being processed, process 500 can evaluate its intra-region travel time variance using one or more criteria (e.g., thresholds or conditions). Illustratively, if the intra-region variance of a region satisfies the one or more criteria by exceeding a threshold value, process 500 can determine that the region needs to be partitioned into smaller regions (e.g., based on changed granularity level) in order to properly serve as a basis for time space construction. For example, with reference to the quadtree based partitioning as shown in
At block 512, process 500 includes changing the granularity level for a region to be partitioned further. The changed granularity level can indicate a smaller size, different shape, different orientation, different location, and/or other changed conditions or constraints applicable to individual regions that can result from the further partitioning of the region. For example, with reference to the quadtree based partitioning as shown in
In some embodiments, the changed granularity level can be based on the geographic attributes, road network and/or distribution, traffic conditions, or other factors of the particular region that is to be further partitioned. For example, the changed granularity level can require the region orientation and/or shape to align with the road orientations within the region. As another example, the changed granularity level can include the size and/or number of subdivided regions as determined based on the value of the intra-region variance (e.g., a larger intra-region variance can lead to smaller subdivided regions).
At block 514, process 500 can include generating one or more distance cartogram(s) that reflect present traffic conditions. In this regard, the regions (e.g., resulting from partitions and further partitions based on different granularity levels) included in the working data set can be used to construct a time space. Illustratively, the travel times associated with each region can serve as base points for constructing a travel time “field” that cover the entire geospatial graph. As those skilled in the art would understand, various linear or non-linear fitting methods can be used to construct this “field” which, as a form of time space, allows for estimating of travel time from the origin to any location on the geospatial graph.
For example, a quadtree based partitioning can result in a working data set reflected in the final regions layout as defined by the final quadtree grid (in black) shown in
Referring back to
In some embodiments, the distorting can be constrained by the shape and/or topology of a road network. For example, process 500 can use every intersection and corner point in the road network as control points for applying the distortion. Process 500 can calculate target coordinates for each control point based on an estimated travel time to reach the control point and gradually shift the control points toward their target coordinates. Upon each shift, process 500 can measure a shape-preservation metric (e.g., differences of edge length ratios and angles between the two shapes) and/or evaluate topology violations. The shift stops if the shape-preservation metric deviates from certain range or value and/or if topology violation is detected.
At block 516, process 500 includes presenting the generated distance cartogram(s). User interface for presenting the generated distance cartogram(s) can effectively support users' location searching, among other functionalities. For example, major location types (e.g., Restaurant, Cafe, Travel attractions, Shopping, Nightlife, or the like) can be included in the interface for user selection. Each type can have its sub-category (e.g., travel attractions include landmarks, museums, parks, beaches, etc.). For each selected location, the user interface can present: the place name, average user ratings, price range ($˜$$$$), the number of user reviews (as a proxy of popularity), place categories, address, phone number, geolocation, images, highlights, review, or the like. The information can be collected from third party databases or services. A set of filters can also be included in the interface to allow users to iteratively refine locations.
The distance cartogram presentation in accordance with some embodiments of the presently disclosed technology can further improve perceived quality of spatial exploration in real settings. Presenting useful map interactions can lower the barrier of unfamiliarity with distance cartograms and increase the chance of adoption. Illustratively, presenting of distance cartogram can include “switching,” where the user interface smoothly animates the map layout between a “standard” map of the obtained geospatial graph and the generated distance cartogram. In some embodiments, the animation is computed and presented after the distance cartogram is generated. In some embodiments, the animation is computed and presented while the region partitioning process is ongoing, based on applicable intermediate data values obtained therefrom. The user interface presenting the distance cartogram can also enable user interactions such as (a) zooming and panning, (b) setting the origin by touching, button tapping, and/or address typing, and/or (c) selecting different modes of transportation for travel time estimation.
In some embodiments, the user interface for presenting distance cartograms enables a user interaction type called “highlighting.” As distance cartogram can position locations based on a radial layout, users may face difficulty in comparing travel times from the origin to two locations as the angle formed by the two locations and the origin gets wider. To overcome this limitation, among other benefits, the interface can enable highlighting with the use isochrones (e.g., circular visual indicators that present a set travel times from the origin). Highlighting can allow users to easily compare any location on a map by creating one's own isochrones and resizing by dragging. Highlighting can visually emphasize locations within a circle by making locations outside the isochrones semi-transparent. As shown in
As an example of the user interface for presenting the generated distance cartogram(s).
Referring back to
As discussed above, a distance cartogram is a specialized map projection that visually conveys a mapping variable as a substitute for distance. While the above description of process 500 primarily uses “travel time” as an example of the mapping variable, other mapping variable(s) can be used to generate corresponding distance cartograms. Illustratively, any time a measure of value is applied to a representation in physical space, that measure of value can constitute a mapping variable. This include, for example, chip design layout where connections are evaluated based on time and/or power consumption, maps of tourist sites where paths between major points of interest are evaluated based on time traveled and/or interest level of areas along the path, airline travel between cities evaluated based on airfare, smart city planning mapped based on aesthetics, views, and/or availability of consumer goods. As those skilled in the art would understand, the technology disclosed herein can be applied to many other situations where an objective function is applied to a representation in physical space.
Several implementations of the disclosed technology are described above in reference to the figures. The computing devices on which the described technology may be implemented can include one or more central processing units, memory, input devices (e.g., keyboard and pointing devices), output devices (e.g., display devices), storage devices (e.g., disk drives), and network devices (e.g., network interfaces). The memory and storage devices are computer-readable storage media that can store instructions that implement at least portions of the described technology. In addition, the data structures and message structures can be stored or transmitted via a data transmission medium, such as a signal on a communications link. Various communications links can be used, such as the Internet, a local area network, a wide area network, or a point-to-point dial-up connection. Thus, computer-readable media can comprise computer-readable storage media (e.g., “non-transitory” media) and computer-readable transmission media.
As used herein, being above a threshold means that a value for an item under comparison is above a specified other value, that an item under comparison is among a certain specified number of items with the largest value, or that an item under comparison has a value within a specified top percentage value. As used herein, being below a threshold means that a value for an item under comparison is below a specified other value, that an item under comparison is among a certain specified number of items with the smallest value, or that an item under comparison has a value within a specified bottom percentage value. As used herein, being within a threshold means that a value for an item under comparison is between two specified other values, that an item under comparison is among a middle specified number of items, or that an item under comparison has a value within a middle specified percentage range. Relative terms, such as high or unimportant, when not otherwise defined, can be understood as assigning a value and determining how that value compares to an established threshold. For example, the phrase “selecting a fast connection” can be understood to mean selecting a connection that has a value assigned corresponding to its connection speed that is above a threshold.
As used herein, the word “or” refers to any possible permutation of a set of items. For example, the phrase “A, B, or C” refers to at least one of A, B, C, or any combination thereof, such as any of: A; B; C; A and B; A and C; B and C; A, B, and C; or multiples of any item such as A and A; B, B, and C; A, A, B, C, and C; etc. As used herein, the phrase “and/or” as in “A and/or B” refer to A alone, B alone, and both A and B.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Specific embodiments and implementations have been described herein for purposes of illustration, but various modifications can be made without deviating from the scope of the embodiments and implementations. The specific features and acts described above are disclosed as example forms of implementing the claims that follow.
Any patents, patent applications, and other references noted above are incorporated herein by reference. Aspects can be modified, if necessary, to employ the systems, functions, and concepts of the various references described above to provide yet further implementations. If statements or subject matter in a document incorporated by reference conflicts with statements or subject matter of this application, then this application shall control.
This application claims the benefit of pending U.S. Provisional Application No. 62/655,661 entitled “Interaction Design for Map Layout Switching,” filed Apr. 10, 2018, and which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62655661 | Apr 2018 | US |