Floor selection on an interactive digital map

A digital map of a geographic area is displayed via a user interface, and a 3D representation of a multi-story building located in the geographic area is displayed on the digital map. The 3D representation includes multiple stacked, individually selectable floor maps corresponding to the floors of the multi-story building. A scrolling gesture that includes a motion in a direction substantially along a vertical axis of the 3D representation of the building is received. In response, the floor maps are consecutively activated, and visual attributes of the activated floor map are changed relative to every other floor maps in the 3D representation, so that no more than one of floor maps is activated at one time.

FIELD OF THE DISCLOSURE

The present disclosure relates to interactive digital maps and, more particularly, to providing an interface for interacting with representations of multi-story buildings displayed as part of digital maps on a computing device.

BACKGROUND

Today, a wide variety of computing devices, including many portable devices, support software applications that display interactive digital maps (“mapping applications”). For example, mapping applications may run on laptop and tablet computers, mobile phones, car navigation systems, hand-held global positioning system (GPS) units, etc. Many of these devices are equipped with a touchscreen, a touchpad, or are otherwise configured to receive input that includes finger gestures. A user may, for example, may pan across a map by swiping her finger in the desired direction, zoom in on an area by pinching two fingers together, etc.

In general, a mapping application can display various types of geographic data including topographical data, street data, urban transit information, and traffic data. Further, the geographic data may be schematic or based on photography, such as satellite imagery. Still further, a mapping application can display the information in a two-dimensional (2D) or three-dimensional (3D) format.

A user sometimes may operate a mapping application to view a map of an urban area rendered two-dimensionally and schematically to better see street names, names of landmarks, etc. However, such maps may include multi-story buildings for which additional floor-specific information is available. For example, different information may be available for each of ten floors of a building, and it is difficult for a mapping application to display this information two-dimensionally without creating confusion and clutter. On the other hand, displaying information for a multi-story building as part of a 3D map can result in some of the information being obscured.

SUMMARY

One embodiment of the techniques discussed below is a method for providing an interactive display of multi-story buildings displayed on a map. The method is implemented in a computing device having a user interface that is configured to receive gesture-based input. The method includes displaying a digital map of a geographic area via the user interface and displaying, on the digital map, a three-dimensional (3D) representation of a multi-story building located in the geographic area, including displaying a plurality of stacked, individually selectable floor maps corresponding to a plurality of floors of the multi-story building. The method also includes detecting, via the user interface, a scrolling gesture that includes a motion in a direction substantially along a vertical axis of the 3D representation of the building and consecutively activating the plurality of floor maps in response to detecting the scrolling gesture, including changing visual attributes of the activated floor map relative to every other one of the plurality of floor maps, where no more than one of the plurality of floor maps is activated at one time.

Another embodiment of the techniques described in the present disclosure is a method in a computing device for providing a digital map of outdoor and indoor locations via a user interface. The method includes displaying a digital map of a geographic area within a viewport on the user interface, where the digital map includes a plurality of map elements representing outdoor physical entities. The method also includes displaying an external representation of a multi-story building located in the geographic area within the viewport, and receiving a selection of a point on the digital map via the user interface. Still further, the method includes, in response to determining that the selected point is within the external representation of the multi-story building, generating an expanded representation of the multi-story building, including simultaneously displaying a plurality of floor maps corresponding to different floors of the multi-story building, and activating a display of one of the plurality of floor maps in response to detecting a gesture that operates directly on the expanded representation of the multi-story building. Finally, the method includes, in response to determining that the selected point is outside the external representation of the multi-story building, providing a plurality of functions for changing the display of the plurality of map elements representing outdoor physical entities.

In yet another embodiment, a computer-readable medium stores instructions for providing an interactive display of internal floor features of multi-story buildings displayed on a digital map. When executed on one or more processors of a computing device, the instructions cause the computing device to display, via a user interface, a digital map that includes a plurality of map elements representing outdoor physical entities, such that the plurality of map elements includes an external representation of a multi-story building, and provide on the user interface a plurality of functions for changing display of the digital map including at least one of pan, zoom, and rotate. The instructions further cause the computing device to determine whether indoor map data is available for the corresponding outdoor multi-story building upon detecting a selection of the representation of the multi-story building via the user interface and, in response to determining that indoor map data is available, display information for different floors of the multi-story building on different respective planes to generate an expanded 3D representation of the multi-story building.

Still another embodiment of the techniques discussed below is a method for providing an interactive display of multi-story buildings displayed on a map. The method is implemented in a computing device having a user interface that is configured to receive gesture-based input. The method includes displaying a digital map of a geographic area via the user interface and displaying, on the digital map, a three-dimensional (3D) representation of a multi-story building located in the geographic area, including displaying a plurality of stacked, individually selectable floor maps corresponding to a plurality of floors of the multi-story building. The method also includes detecting, via the user interface, a gesture that operates directly on the 3D representation of the multi-story building, and activating one of the plurality of floor maps in response to detecting the gesture, including changing visual attributes of the activated floor map relative to every other one of the plurality of floor maps.

DETAILED DESCRIPTION

A mapping software module operating on a computing device displays an interactive digital map of a geographic region in which a multi-story building is located. The mapping software module provides an intuitive, space-efficient, and aesthetically pleasing user interface for inspecting the internal features of the multi-story building, such as floor maps that include floor contours as well as internal wall layout and names of individuals or organizations occupying different floors of the building.

In one example implementation, the mapping software module displays a 2D schematic map that includes low-detail 3D outlines of buildings, which may be displayed to scale with the map. A user selects the desired building by tapping on the corresponding 3D outline. The mapping software module then expands the low-level outline view of the selected multi-story building to display the internal features of the building as a 3D stack of individually selectable floor contours, each illustrated in a perspective view. The 3D stack in some cases is significantly larger than the low-detail 3D outline, so that the floor contours are clearly visible and easily selectable. The mapping software module allows the user to activate the display of and an individual floor map via a gesture that operates directly on the expanded representation of the multi-story building. When a particular floor is selected using a tap gesture, for example, the mapping software module brings the corresponding floor map to the foreground and makes the relevant features fully visible. For example, when one of the floors of a multi-story airport terminal is selected, the mapping module may display the check-in counters, escalators, stores, etc. located on the selected floor. These features may obscure some or all of features on the other floors, but the stacked floor contours remain visible and available for direct selection by tapping or clicking. Once the user taps outside this expanded representation of the multi-story building, the mapping software module “collapses” the view of the multi-story building back to a 3D outline.

According to one example implementation on a computing device equipped with a touchpad or a touchscreen, the mapping software module allows the user to scroll through the floor maps using the swipe gesture. More specifically, the user scrolls from the top floor down to the first floor by making a generally upward swiping motion with her finger, or from the bottom floor up to the top floor by making a generally downward motion with her finger (or, if desired, the floors can be scrolled in the direction of the motion). The mapping application also recognizes acceleration or another kinetic parameter of the gesture to scroll faster when the user makes a quick flinging motion. Thus, the user can quickly scroll through the floors of a sixty-story office building or slowly scroll through the floors of a three-story shopping mall, for example. The display of floor-specific information is activated and deactivated in the order of scrolling, thereby creating an animation effect. In other words, the mapping software module displays a “flow” of floor maps. The user taps on the desired floor to confirm her selection, or the mapping software module activates the map of the floor that remains in focus when the momentum of the swipe gesture is exhausted and scrolling stops.

These techniques are discussed in more detail below with reference toFIGS. 1-5. In particular, an example system in which a mapping software module may interactively present internal features of buildings is described with reference toFIG. 1, example screenshots of the mapping software module are discussed with reference toFIGS. 2 and 3, and example methods which the mapping software module may implement to provide a user interface for inspecting internal features of multi-story buildings are discussed with reference toFIGS. 4 and 5.

Referring first toFIG. 1, a system10includes a computing device12coupled to a map server14via a communication network16. The computing device12can be, for example, a laptop computer, a tablet computer, a smartphone, etc. In the embodiment illustrated inFIG. 1, the computing device12includes a central processing unit (CPU)20, a graphics processing unit (GPU)22, a computer-readable memory24, and a user interface30including a touch interface32. In various implementations, the touch interface32can include a touchpad over which the user moves his fingers while looking at a separately provided screen, a touchscreen where the user places his fingers directly over the image being manipulated or over a displayed control being activated (e.g. a displayed keyboard), etc. The memory24is a computer-readable non-transitory storage device that may include both persistent (e.g., a hard disk) and non-persistent (e.g., RAM) memory components, stores instructions executable on the CPU20and/or the GPU22that make up a mapping software module40and map data42on which the mapping module40operates. The mapping software module40includes an internal building feature inspection module44that allows users to easily inspect internal features of multi-story buildings.

The mapping software module40according to various implementations operates as a separately executable software application, a plugin that extends the functionality of another software application such as a web browser, an application programming interface (API) invokable by a software application, etc. The instructions that make up the mapping software module40may be compiled and executable on the CPU20and/or the GPU22directly, or not compiled and interpreted by the CPU20at runtime. Further, the internal building feature inspection module44may be provided as an integral part of the mapping software module40or as a separately installable and downloadable component.

Depending on the implementation, the map data42may be in a raster format, such as Portable Network Graphics (PNG), a vector graphics format (based on mathematical descriptions of geometric shapes), or any other suitable format. The map data42in some cases is divided into map tiles, or portions of a map image having a certain fixed size, such as 256 by 256 pixels. In operation, the mapping module40receives the map data42from the map server14, renders a map image based on the map data, and causes the map image to be displayed via the user interface30. When the map data42is already rasterized, the mapping module40renders the map image by selecting and combining the proper rasterized tiles. However, if the map data42is in a vector graphics format, the mapping module40interprets the descriptions of various shapes to generate the corresponding raster images. The mapping module40also adjusts the displayed image and requests new map data, when necessary, in response to user input received via the user interface30. More specifically, the user may change the zoom level, pan across the map, select a different map type (e.g., traffic map, terrain map), and otherwise interact with the map.

In an example scenario, the map server14receives a request that specifies the geographic area, the zoom level, and the map type. The map server14in response retrieves outdoor map data and indoor map data from an outdoor map database50and an indoor map database52, respectively. The map server14then provides the outdoor map data, the indoor map data, and appropriate indications of how certain portions of the outdoor map data and the indoor map data are linked, to the computing device12as part of the map data42.

When provided in a vector graphics format, outdoor map data may specify individual map elements representing such physical entities as roads, parks, bodies of water, external walls of buildings, and other natural and artificial objects visible outside, e.g., from above or at a street level. In a raster format, map elements typically are embedded into the same image. Outdoor map also may include text-based data for displaying various labels such as street names or names of landmarks. In general, outdoor map data may be for generating 2D images or 3D images, and may include schematic data, photographic images, or both.

Indoor map data may specify internal features of buildings such as the layout of internal walls or dividers, names of people, businesses, and organizations occupying different portions of a building, locations of elevators, escalators, restrooms, etc. For multi-story buildings, the indoor map data may specify internal features on a per-floor basis. Similar to outdoor map data, indoor map data may include both graphics content and non-graphics (e.g., text) content, and the graphics content may include schematic illustrations, photographic images, interactive and non-interactive icons, etc.

Certain portions of the outdoor map data may be logically linked to respective portions of indoor map data. In particular, certain map elements displayed on a map may be linked to indoor data that typically is not displayed on the map without an additional user request. In other words, certain map elements may be associated with additional map data that is not part of the map image typically displayed for the specified geographic region, map type, and zoom level. Referring to the map data42, the map server14can provide outdoor map data as a collection of separate data structures, each containing a vector-based description of a map element, text-based label data, and metadata that further contains a unique identifier of another data structure storing the corresponding indoor map data. If the outdoor map data included in the map data42is rasterized, the unique identifier of a data structure storing indoor map data can be provided for a particular set of coordinates in the raster image. In either case, the mapping software module40can display the outdoor map data and provide interactive controls for activating the display of relevant indoor map data.

As a more specific example, according to one implementation, the map server14provides, as part of outdoor map data, external representations of buildings in the form of low-detail 3D outlines. The mapping software module40superimposes these 3D outlines over a 2D map. In another implementation, the map server14provides 3D mesh descriptions of buildings along with photographic imagery for texturing the corresponding 3D meshes. Using this type of map data, the mapping software module40can generate realistic, highly detailed external representations of buildings. In yet another implementation, the map server14provides merely 2D outlines, or “footprints” of buildings on a 2D map. A user can tap or click on these 2D or 3D external representations of buildings to instruct the mapping software module40to display the internal features of the buildings in an expanded format.

With continued reference toFIG. 1, the map server14may include a processor60and a memory62that stores a request processor64, made up of instructions executable on the processor60. The computing device12and the map server14may communicate in a client-server mode, where the computing device12sends requests for map data to the map server14, and the map server14provides map data in response to these requests. More particularly, the request processor64in operation receives requests for map data from the computing device12, identifies and retrieves the requisite map data from the outdoor map database50and/or the indoor map database52, formats response messages that contain the map data, and causes the response messages to be transmitted to the computing device12via the network16, which may be a wide area network (WAN) such as the Internet, a local area network (LAN), or any other suitable type of a network.

For simplicity,FIG. 1illustrates the map server14as only one instance of a server device. However, the map server14according to some implementations includes in a group of one or more map server devices, each equipped with one or more processors and capable of operating independently of the other map server devices. Map server devices operating in such a group can process requests from the computing device12individually (e.g., based on availability), in a distributed manner where one operation associated with processing a request is performed on one map server device while another operation associated with processing the same request is performed on another map server device, or according to any other suitable technique. For the purposes of this discussion, the term “map server” may refer to an individual map server device or to a group of two or more map server devices.

Now referring toFIGS. 2 and 3, an example screenshot100illustrates an expanded representation104of a multi-story building overlaying a map of a geographic area102. Indoor and outdoor map data are displayed within a same viewport in this example. The representation104includes several stacked, individually selectable floor maps111-115. When a user selects the floor map113corresponding to Floor 3 of the building, the internal features of the selected floor are brought to the foreground, as an example screenshot200illustrates inFIG. 3.

In this example, the map102illustrates several city blocks and includes various outdoor map elements such as roads120, railroad tracks122, and low-detail outlines of buildings124and128. The map102also can include icons and text labels corresponding to outdoor map data, such as a map transit icon130, for example. Although the map102is a 2D map on which most map elements are illustrated with a one-point projection, the expanded representation104in general can overlay any other suitable type of a map such as a 3D map, for example. A mapping software (e.g., the internal building feature inspection module44operating in the mapping software module40ofFIG. 1or a similar module) may provide functions for interacting with outdoor map data such as rotate, zoom, pan, etc., as well as functions for inspecting internal features of buildings when indoor map data is available. The screenshot100corresponds to the scenario in which the user selected the multi-story building by clicking or tapping on the corresponding low-detail outline, for example, and the mapping software in response generated the expanded representation104.

The low-detail outline124or128provides a general indication of the shape of the building. The outline124or128typically does not provide a high-level of detail such the shape of every external wall or the ornamental features of the buildings, nor does the outline124illustrate internal features of the building. In the example ofFIG. 2, the low-detail outlines124and128are 3D shapes displayed according to an isometric projection. In another implementation, however, these outlines can be illustrated with a two-point perspective. More generally, and as discussed above, buildings and other structures for which indoor map data is available generally can be illustrated using any suitable 2D or 3D shapes rendered with any desired level of detail.

According to some implementations, the mapping software provides an indication of whether indoor map data is available for an outdoor map element by changing the cursor, for example, or highlighting the map element upon detecting a hover event. In this manner, the user need not click or tap on a map element illustrating a building only to find out that internal map data for the building is unavailable.

As best seen inFIG. 2, the floor maps111-115are laid out on different planes tilted relative to the plane of the screen to provide a 3D view of the internal features of the corresponding building. The floor maps111-115partially overlap to more efficiently utilize screen real estate. However, in other implementations, floor maps may not overlap at all. Similar to low-detail 3D outlines, the stack of floor maps111-115is displayed according to an isometric projection, although it is possible to display the stack of floor maps111-115with a two-point perspective, for example. Until selected, the floors maps111-115are displayed as contours free of internal floor features. In embodiments according to which floors maps111-115display some or all internal floor features even when inactive, the floor maps111-115may be partially or fully opaque, so that some of the floor maps can partially occlude other floor maps and thereby reduce clutter on the screen.

When a user scrolls through the internal features of the building using a swipe gesture, the floor maps111-115that fall within the range of the swiping motion are consecutively activated and deactivated, so that only of the floors maps111-115is activated at any one time. Thus, for example, if the user makes a generally upward motion in the vicinity of a point150, first the floor map for floor three is activated, then the floor map for floor three is deactivated and the floor map for floor two is activated, and then the floor map for floor two is deactivated and the floor map for one two is activated. This floor map may remain activated until the user makes another swiping motion, or, in another implementation, the floor map is automatically deactivated after a predetermined time interval in the absence of a selection. As another example, when an expanded representation of a sixty-story skyscraper is being displayed, and the user makes a relatively quick, generally downward swiping motion over a point within this expanded representation that falls approximately on floor23, the floor maps between floors23and42are consecutively activated, until the momentum of the swiping gesture is exhausted at floor42. Moreover, the floors in this example scenario may be scrolled progressively slower.

The mapping software may indicate the currently activated floor by highlighting the floor map, changing the thickness and/or color of lines defining the floor contour, or in any other suitable manner. More generally, the mapping software may change the visual attributes of the activated floor map relative to the other floor maps.

Once the user selects floor three, a detailed floor map202illustrated inFIG. 3is displayed. The detailed floor map202is generated using indoor map data and illustrates, in addition to the contours of the floor, hallways210and rooms or offices212, although in general the detailed floor202can depict any available indoor floor features. In the example ofFIG. 3, the detailed floor map202is brought to the foreground so that no part of the detailed floor map202is occluded by any of the floor maps of lower or higher floors. Further, to make the display of the detailed floor map202more prominent, the floor maps112,112,114, and115are either completely removed or are displayed as ghost lines, as illustrated inFIG. 3. Still further, once the floor map for floor three is selected, a low-detail 3D outline204of the multi-story building is displayed using ghost lines.

With continued reference toFIGS. 2 and 3, the user may tap on a point on the map102that is outside the expanded representation104or move the viewport so that the expanded representation104is no longer visible. In response, the mapping software may revert to the mode in which the user interacts with outdoor map data. In particular, the expanded representation104may collapse to the low-detail representation204.

It is noted that internal building feature inspection module44that implements the techniques discussed with reference toFIGS. 1-3provides an intuitive interface for inspecting indoor map data, separately or in conjunction with outdoor map data, without requiring that the user operate additional controls (such as a floor selector with multiple radio buttons displayed over the map) and without occluding significant portions of the map.

To further illustrate the techniques for providing an intuitive and efficient interface for inspecting indoor and outdoor map data, example methods which the internal building feature inspection module44may implement are discussed next with reference toFIGS. 4 and 5. More generally, these methods can be implemented in any suitable computing device and any suitable software application. For example, these methods can be implemented as sets of instructions stored on a computer-readable medium and executable on a processor.

The flow diagram ofFIG. 4illustrates an example method400for displaying a representation of a multi-story building on a map of a geographic region. At block402, an interactive digital map of a geographic region is rendered. The rendered digital map may be rendered using outdoor map data and may display map elements such as roads, buildings, parks, bodies of water, etc. A low-detail representation of a multi-story building is rendered at block404. As discussed above, a low-detail representation is only one example of a suitable external representation of the building. In other embodiments, the external representation may be a detailed 3D representation textured with photographs of the building.

Next, at block406, a selection of the multi-story map on the digital map is detected. The selection may correspond to a tap event, for example, if a touch interface is used. An extended 3D representation of the multi-story building having multiple stacked, individually selectable floor maps is rendered at block408. Referring back toFIG. 2, this representation may be similar to the representation104.

At block410, a selection of one of the floors is detected via the user interface. As one example, the user scrolls through several floor maps until she reaches the desired floor and taps on the corresponding floor map to indicate her selection. In response, a detailed floor map of the selected floor412is rendered at block412. The detailed floor map may display geometric shapes, icons, photography, text, etc. to illustrate various internal floor features. When a selection of a new point on the digital map is selected (block414), it is determined whether the new point is outside the expanded representation of the multi-story building (416). If the new point is inside the expanded representation, the floor returns to block410, where a new or the same floor is selected. Otherwise, the flow proceeds to block418.

At block418, the extended 3D representation of the multi-story building is collapsed back to the low-detail representation of the same building. In this manner, the user can effectively switch between the outdoor map data inspection mode and the indoor map data inspection mode.

FIG. 5is a flow diagram of an example method500for displaying internal features of a multi-story building in response to gesture-based user input. More particularly, a software module may implement the method500to allow a user to browse through floor maps of a multi-story building. The method500can be invoked, for example, at blocks408-410of the method400discussed above.

At block502, a 3D representation of a multi-story building is rendered similarly to the block408discussed with reference toFIG. 4. Next, at block504, a user gesture is detected. The gesture, such as the scrolling gesture, includes the motion of a finger along a vertical axis of the 3D representation of the building. In another implementation, however, the motion may include a motion along a different axis, such as the horizontal axis.

According to the method500, floor maps are consecutively activated at block506. More particularly, exactly one floor map is activated at a time, and the activation proceeds sequentially along the direction of motion and according to the speed at which the user moves or flings his finger along the touchscreen. Alternatively, the sequential activation of floor maps can proceed in the opposite direction. The internal features of the activated floor are displayed differently than the internal features of other, inactivated floors.

Additional Considerations

Hardware and software modules can provide information to, and receive information from, other hardware and/or software modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple of such hardware or software modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware or software modules. In embodiments in which multiple hardware modules or software are configured or instantiated at different times, communications between such hardware or software modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware or software modules have access. For example, one hardware or software module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware or software module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware and software modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).

The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as an SaaS. For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application program interfaces (APIs).)