Client-side drawables for indoor building maps

By generating drawable geometric elements on the client side and displaying specified internal map features based on the selection criteria of authorized users, this technology solves the problem that existing map drawing platforms struggle to efficiently display indoor building maps, thereby reducing visual clutter and improving user experience.

CN115702325BActive Publication Date: 2025-12-30MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180042649.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-06-30
Filing Date
2021-04-23
Publication Date
2025-12-30
Estimated Expiration
2041-04-23

AI Technical Summary

Technical Problem

Existing computerized mapping platforms suffer from information overload and visual confusion when displaying indoor maps of buildings, especially when multiple buildings are close together, making it difficult for users to identify and access detailed indoor map information.

Method used

By generating geometric elements that can be drawn on the client side, and by setting selection criteria based on the indoor map for authorized users, only specified internal map features are displayed, and interactive functions are provided to allow users to switch and view detailed map information.

Benefits of technology

It reduces visual clutter on maps, improves user experience, allows authorized users to specify the visualization of specific interior map features, and enhances the ease of access to indoor maps.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115702325B_ABST
    Figure CN115702325B_ABST
Patent Text Reader

Abstract

A computerized mapping system is provided that includes a map server configured to receive a request from a client device at a map service stage to view a portion of a map that includes at least in part an indoor map of a building available at a requested level of detail, the requested level of detail being outside a range to display the indoor map, and transmit to the client device for display a target tile having a pre-drawn bitmap image of the building and a client-side drawable geometric element having a perimeter and a client-side drawable visual feature of the indoor map selected according to a selection criterion set by an authorized user of the indoor map.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] Computerized mapping platforms offer users near-instant access to a dazzling array of geospatial information. With the proliferation of available information, the challenge lies in effectively presenting maps at an appropriate level of detail without overwhelming users with too much information. However, simply reducing information to a smaller dataset may leave users unaware of more details about what might be available, potentially causing them to miss opportunities to discover new locations or access desired information. Opportunities exist to address these challenges and improve the user experience of computerized mapping platforms. Summary of the Invention

[0002] A computerized map-making system according to the first aspect is provided, comprising a map server configured to generate map data during a map data preparation phase. This map data is organized into a series of tiles at different levels of detail. The map data includes interior maps of buildings, and generates client-side drawable geometric elements comprising the perimeter of buildings and interior map features. The client-side drawable geometric elements are generated at least in part by: determining the perimeter based on data included in the interior map; selecting interior map features from a plurality of interior map features based on selection criteria set by an authorized user of the interior map; and generating client-side drawable visual features for the selected interior map features to visually convey the selected interior map features on the client-side drawable geometric elements. The map server is configured to associate the client-side drawable geometric elements with one or more tiles. The map server is also configured to receive requests from client devices during the map service phase to view portions of a map, which at least partially include buildings available in the indoor map at a requested level of detail, the requested level of detail being outside the area where the indoor map is displayed, and to transmit target tiles with pre-drawn bitmap images of buildings, as well as client-side drawable geometric elements with perimeters and client-side drawable visual features of the indoor map's interior map features selected according to selection criteria set by the authorized user of the indoor map to the client device for display.

[0003] In a computerized mapping system according to the first aspect, geometric elements are displayed to provide users with visual indications of the interior map's usability when viewed at a level of detail beyond what is used to display the interior map, and information relating to the interior map features specified by the authorized user of the interior map is displayed. In this way, the mapping system can provide a mechanism to reduce visual clutter in the map while still allowing authorized users (such as developers associated with the interior map) to specify particular interior map features that are visually communicated to the map user.

[0004] This synopsis is provided to introduce a series of concepts in a simplified form, which will be further described in the detailed description below. This synopsis is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to the implementation of solutions to any or all of the shortcomings pointed out in any part of this disclosure. Attached Figure Description

[0005] Figure 1 A schematic diagram of a computerized map-making system including client-side plottable geometric elements is shown according to an embodiment of the present disclosure.

[0006] Figure 2 It shows in Figure 1 An example portion of the map is displayed in the graphical user interface of the client application of the computerized mapping system.

[0007] Figure 3 It shows the basis for targeting Figure 1 Example geometric elements generated by combining two floors in a floor map of a computerized mapping system.

[0008] Figure 4 It shows including targets Figure 1 Example bitmap images of building coverage areas and geometrically depicted blocks that can be drawn on the client side of a computerized mapping system.

[0009] Figure 5 Showing the target Figure 1 Examples of user interaction with geometric elements and visual distinguishing features of geometric elements in computerized mapping systems.

[0010] Figure 6 It shows the response to use Figure 1 The example indoor map is displayed by selecting geometric elements from a computerized mapping system.

[0011] Figure 7 It shows the use of Figure 1 The computerized mapping system allows authorized users to view examples of geometric elements associated with private indoor maps.

[0012] Figure 8 It shows that it includes the following: Figure 1 An example indoor map that uses a computerized mapping system to determine the internal map features.

[0013] Figure 9 It shows how to visually convey the message by Figure 1 Computerized mapping systems generate Figure 8The client-side can draw visual features as an example of the internal map characteristics.

[0014] Figure 10 It shows how to visually convey the message by Figure 1 The computerized mapping system generates a summary of data feeds, and the associated client-side data feeds can be used to draw visual features.

[0015] Figure 11 It shows the result of Figure 1 The flowchart illustrates an example method for computerized mapmaking implemented in a computerized mapmaking system, which allows switching between indoor maps using client-side drawing of geometric elements.

[0016] Figure 12 continue Figure 11 The method.

[0017] Figure 13 continue Figure 12 The method.

[0018] Figure 14 It shows that it can be implemented therein. Figure 1 A schematic diagram of an example computing environment for computer devices. Detailed Implementation

[0019] One type of detail recently appearing on online maps is building overlays. These overlays are generated using deep neural networks that analyze satellite imagery and automatically produce them. These overlays are typically indicated by the perimeter outlines of buildings detected by the deep neural network. Another type of detail recently appearing on online maps is the ability to access certain locations such as shopping malls, train stations, etc. Adding building overlays to all buildings, while only adding indoor maps to a few, presents a challenge for users to identify which buildings, as indicated by the overlays, have available indoor maps. Furthermore, because the feature scale in indoor maps is very small compared to outdoor maps, another challenge arises if the details in indoor maps are presented to users viewing the map at a relatively low level of detail (i.e., scaled down). Details within indoor maps can appear so small and cluttered that they become difficult to understand.

[0020] These issues are more complex in suburban and urban environments because of the multiple buildings on a single map. Adding more detail to a map (such as interior map data for multiple buildings in a view) can lead to a lot of visual clutter, overwhelming users and potentially degrading their experience with the mapping system. For example, a user might be viewing multiple interior buildings located close to each other on a map. As a specific example, a user might want to view the interior data for a parking lot, and then might want to view the interior data for a shopping mall located near the parking lot. However, interior map data can be visually dense, and displaying multiple interior maps simultaneously can be visually cumbersome. For example, showing the interior floor plans of a parking lot, shopping mall, cinema, etc., simultaneously can increase visual noise, thus reducing the user's experience with the mapping system.

[0021] To solve these problems, Figure 1 An example computerized mapping system 10 is illustrated, providing clickable geometric elements that allow users to switch between different indoor maps. The computerized mapping system 10 includes a map server 12 and one or more client devices 14. The map server 12 may include multiple server devices that can operate in a cloud computing configuration. The map server 12 includes at least one processor 16, a storage device 18 such as volatile and non-volatile storage devices, and other suitable computer components for performing the functions described herein. At least one processor 16 of the map server 12 is configured to execute map control logic 20 stored on the storage device 18, which includes a mapping technology stack comprising functions such as drawing, control, geocoding, automatic suggestion, routing, and other mapping service functions.

[0022] Client device 14 includes a processor 22, an input device 24 (such as a capacitive touchscreen, keyboard, and mouse), a display 26, and other suitable computer components (such as volatile and non-volatile storage devices). The processor 22 of client device 14 is configured to execute a client mapping program 28, which is configured to process client-side user input (such as map navigation and zoom input) received via the input device 24 and display plotted map data 30 via the display 26. In one example, map server 12 may be configured to send a package of map control logic 20 to client device 14 in response to a user triggering a map experience. Map control logic 20 may be executed locally as client-side map control logic 32 within client mapping program 28. In this way, client-side map control logic 32 may be configured to perform functions of map control logic 20 such as control, geocoding, automatic suggestion, routing, and other map-drawing service functions.

[0023] It should be understood that the client-side map application 28 can take any suitable form, such as code executed within a browser, an application executed on the client device 14, etc. As a specific example, map control logic 20 can be sent to the client device 14 in the form of a modified JavaScript object symbolic program, and may also include relevant portions of map data 34 for the user of the client device 14. Map control logic 20 can be executed as client-side map control logic 32 within the client-side map application 28, which can take the form of a browser application or an application executed within a browser application.

[0024] Figure 2 An example graphical user interface (GUI) 36 of a client mapping program 28 presented via a display 26 of a client device 14 is illustrated. The GUI 36 may include a view of drawn map data 30. As will be discussed in more detail below, the drawn map data 30 may include drawn bitmap image data drawn by a map server 12. The client mapping program 28 may be configured to handle the display of relevant portions of the drawn map data 30 in the GUI 36 for the user's current view. The GUI 36 may also include navigation controls, such as, for example, a zoom control 38, which receives user zoom input. It should be understood that the GUI 36 may include other types of navigation controls. Furthermore, it should be understood that the GUI 36 of the client mapping program 28 may receive user input via other input modes. For example, a user may input zoom input via pinch or spread gestures on a capacitive touchscreen input device. As another example, a user may input navigation input via finger drag gestures. In a desktop computer example, a user may input input via mouse clicks and drags or by pressing arrow keys on a keyboard. It should be understood that the client-side map program 28 is not limited to the above-mentioned input modes and technologies, and can receive user input through any suitable method.

[0025] Return to Figure 1 Map server 12 is configured to generate map data 34, which is organized into a series of tiles 40 at different levels of detail 42. The level of detail 42 can be associated with different zoom level thresholds on the client side. The level of detail 42 includes reducing or increasing the complexity of the drawn image of the tiles 40 for various zoom levels that can be selected by the client device 14. Each tile 40 may include an associated bitmap image 44 of a portion of the map drawn at a specified level of detail 42. Therefore, for each level of detail 42, there will be a set of tiles 40 including bitmap images 44 that are combined to form the image of the map at that level of detail 42.

[0026] Each tile 40 also includes geospatial reference data 46 for the tile 40 and each object represented within it. The geospatial reference data 46 can be used by map control logic 20 and the corresponding client-side map control logic 32 for geolocation, plotting, and rendering map data. In one example, the geospatial reference data 46 may include the latitude and longitude values ​​of the object and / or a reference location or place in the data for that tile 40.

[0027] A subset of bitmap images 44 of tile 40 may include a graphical depiction of building coverage areas 48 of multiple buildings 50. Examples of building coverage areas 48 of multiple buildings 50 are drawn in... Figure 2 As shown in the figure, the building coverage area 48 may include lines or line segments indicating the perimeter or coverage area of ​​each building 50. The geospatial reference data 46 for each tile may also include geospatial references for each building coverage area 48.

[0028] Return to Figure 1 Map data 34 may also include interior maps 52 for each of the subsets of multiple buildings 50. Example interior maps are shown in... Figure 3 As shown below, each indoor map 52 is geospatial referenced in geospatial reference data 46. In one example, the indoor map 52 may be mergeable with the bitmap image 44 at a specified level of detail 42. In one example, the map server 12 may be configured to draw the indoor map 52 in the bitmap image 44. That is, at a specified level of detail 42, tiles 40 for those specified levels of detail 42 may include the drawn indoor map 52, which is included in the bitmap image 44 of the surrounding outdoor map. In another example, as will be discussed in more detail below, the indoor map 52 may be drawn on the client side and merged with the bitmap image 44 drawn on the server side. The specified level of detail 42 may be selected based on the complexity of the indoor map. That is, a relatively simple indoor map may be shown at a more distant zoom level, while a more complex indoor map may not be shown until the user has zoomed to a closer zoom level. As another example, a default level of detail 42 may be specified for all indoor maps 52.

[0029] In one example, map server 12 can be configured to draw an indoor map 52 in a bitmap image 44 for the corresponding tile 40. Therefore, bitmap image 44 will include image data for both the outdoor map (graphic depiction of the building coverage area 48) and the indoor map 52, which is geospatially located within the map portion covered by the tile. In another example, indoor map 52 can be stored separately from bitmap image 44 data. However, since indoor map 52 is geospatial referenced, map server 12 can be configured to merge indoor map 52 with the bitmap image 44 containing the tile 40 based on geospatial reference data 46. In another example, bitmap image 44 and data for indoor map 52 can be sent to a client, and the client can draw indoor map 52 and merge the drawn data with bitmap image 44 based on geospatial reference data 46. Storing indoor map 52 separately from bitmap image 44 can provide data security advantages. For example, a specific indoor map 52 can be designated as a private indoor map that can only be accessed by authorized users, and the map server 12 can be configured to confirm whether the user is authorized to view the private indoor map before transmitting tiles that include the private indoor map or merging the private indoor map with the corresponding tiles.

[0030] like Figure 1As illustrated, map server 12 can also be configured to generate client-side drawable geometry elements 54 for each indoor map 52. Each client-side drawable geometry element 54 includes the perimeter of the associated building and client-side drawable visual features of the interior map features of the indoor map 52 for that building. After generation, each client-side drawable geometry element 54 is associated with one or more tiles 40, which include buildings 50 of the indoor map 52 associated with the client-side drawable geometry element 54. In some cases, a building 50 can be split across multiple tiles 40. That is, half of a building 50 may be located on one tile, while the other half extends into another tile 40. In this case, client-side drawable geometry element 54 can be associated with each tile 40 that includes the building 50. Using techniques described below, each client-side drawable geometry element 54 can be generated programmatically by map server 12 based on indoor map 52. The term client-side drawable refers to drawing geometric elements from their geometric definitions (such as a set of geospatial reference geometric data points defining a polygon) into a bitmap that includes pixel data suitable for display on a display component associated with a client device. This distinguishes it from server-side drawn bitmaps, where the bitmap data itself (i.e., pixel data) is generated (drawn) on the server and transmitted as pixel data to the client device. One advantage of client-side drawing of geometric elements 54 is that it can be endowed with interactive functionality, such as hover and selection (click or tap) behaviors discussed below, including features that send requests to the server to display the map at specific coordinates and levels of detail, enabling the display of indoor maps. While server-side drawn images offer advantages in processing speed and access to large data repositories, this client-side interactive functionality is typically unavailable in server-side drawn bitmap images.

[0031] Map server 12 can be configured to generate client-side plottable geometry 54 at least in part by: determining the perimeter based on data included in indoor map 52; selecting an internal map feature 84 from a plurality of internal map features 84 based on selection criteria set by an authorized user of indoor map 52; and generating client-side plottable visual features 86 for the selected internal map feature 58 to visually convey the selected internal map feature on the client-side plottable geometry. For example, the perimeter can be determined as described herein via joint operations on the floors of an indoor map of a building. The selection of internal map features can be accomplished, for example, by an authorized user accessing a map application programming interface and uploading an indoor map along with values ​​for the selection criteria. These values ​​may indicate to the authorized user that they wish to have a specific location (e.g., “Joe’s Restaurant”), location type (e.g., Italian restaurant), facility (e.g., “ground floor lobby”), or facility type (public restroom), or other features of the indoor map described herein represented by client-side plottable visual features. It should be understood that, apart from those internal map features indicated by authorized users, other internal map features are generally not included in the client-side drawable geometry to avoid visual clutter. In this way, client-side drawable visual features are conveyed in a visually distinct manner: internal map features exist within the indoor map without displaying overly detailed information from the indoor map. In addition to the above, authorized users can set procedural constraints for internal map features. For example, authorized users can use the map application programming interface to set selection criteria to the least crowded area in the indoor map for that time and date, all currently less crowded areas below a predetermined density threshold, the highest rated area in the indoor map, all currently open areas in the indoor map, or promotional areas in the indoor map, as well as data on crowd density, ratings, promotions, or opening / closing information from data feeds described elsewhere in this document. It should be understood that by providing such selection criteria, authorized users of indoor maps can refine the information available to the public to provide more useful and relevant information to potential visitors. Especially during the outbreak of infectious diseases such as COVID-19, information about areas in indoor maps with the lowest or below acceptable pre-defined thresholds (such as a population density that allows for at least 6 feet of distance between people) can reassure visitors that they can effectively maintain social distancing in these areas of the building during their visit.

[0032] When a user of client device 14 triggers an experience with the map drawing service, client map application 28 can call / communicate with map server 12 and receive map control logic 20 to be executed as client-side map control logic 32 within client map application 28. For example, a user can trigger the map drawing service experience by opening a map drawing application on the client device, interacting with an electronic meeting invitation including meeting location, or triggering another type of user interaction with the map drawing service. After triggering the map drawing service, client map application 28 can send a request to map server 12 to display tile 40, which includes the address or coordinates of the location to be displayed.

[0033] Map server 12 receives a request from client device 14 to view a portion of a map, which includes buildings available for indoor map viewing. The map portion to be displayed can be determined based on the requested address or coordinates and geospatial reference data 46 associated with tile 40. In some examples, the request from client device 14 may also include a requested level of detail 42, which can be determined based on the current zoom level of client map program 28. Map server 12 determines at least one target tile 56 that is included in the portion of the map requested by client device 14 at the requested level of detail 42. In one example, the requested level of detail 42 is outside the area used to display indoor map 52 in the requested portion of the map. Map server 12 can be configured to transmit to client device 14 the target tile 56 having a pre-drawn bitmap image 58 for the building, as well as client-side drawable geometric elements with perimeters and client-side drawable visual features of the indoor map selected according to selection criteria set by an authorized user of the indoor map for display.

[0034] Client device 14 can receive target tile 56 and map control logic 20. Client map program 28 can execute the received map control logic 20 as client-side map control logic 32 to display the pre-drawn bitmap image 58 at the appropriate position, orientation, and zoom level within the GUI of client map program 28. Client map program 28 can also be configured to draw target client-side drawable geometry 60 and overlay the drawn target client-side drawable geometry 60 at the position indicated by the geospatial reference data 46 of the geometry on the pre-drawn bitmap image 58. The combined pre-drawn bitmap image 58 and drawn target client-side drawable geometry 60 can be presented as drawn map data 30 via display 26.

[0035] The client-side map program 28 can also transmit client-side user input to the client-side map control logic 32, such as navigation input, zoom input, etc. In some examples, the client-side map control logic 32 can determine the location, orientation, and zoom level to display the plotted map data 30, and the client-side map program 28 can process navigation input and zoom input within the context of the plotted map data 30 on the client device 14.

[0036] In one example, the plotted client-side plottable geometry 60 can be selected via user input entered into input device 24 on client device 14. After selecting the plotted client-side plottable geometry 60, client mapping program 28 can be configured to transmit request 62 to map server 12 to indicate the user selection of geometry 60. In one example, request 62 may include an identifier for the selected geometry 60. Map server 12 receives request 62 indicating the selection of client-side plottable geometry 54 from client device 14 and identifies which client-side plottable geometry 54 the user has selected. For example, map server 12 may compare the identifier included in request 62 with a list of identifiers for all client-side plottable geometry 54 stored on map server 12.

[0037] Next, in response to receiving the selection indicated by request 62, map server 12 displays the interior map of the building on client device 14. In one example, the interior map may be drawn server-side by map server 12. In another example, data for the interior map may be sent to client device 14, and client device 14 may be configured to draw the interior map using the techniques described herein and merge the drawn interior map data with pre-drawn bitmap image data. Map server 12 determines the building and interior map 52 associated with the client-side drawable geometry 54 selected by the user. Map server 12 transmits tile 40, which includes the interior map 52 of the building associated with the client-side drawable geometry 54 selected by the user of client device 14.

[0038] Client device 14 can receive the requested tile 64 associated with the selected geometric element. For example... Figure 1As illustrated, the requested tile 64 may include an interior map 68 of a building associated with the selected geometric element and a pre-drawn bitmap image 66. In one example, map server 12 may be configured to combine the pre-drawn bitmap image 66 and the interior map 68 into a combined plotted data. In another example, the pre-drawn bitmap image 66 and the interior map 68 may be separate, but both may be geospatial referenced. In this example, client mapping program 28 may be configured to merge the pre-drawn bitmap image 66 and the interior map 68 based on geospatial reference data and display the combined plotted map data within the map view window of client mapping program 28 on display 26.

[0039] An example of selectable geometric elements will now be described. Figure 3 Example client-side drawable geometry 54 is illustrated at (A). In one example, map server 12 can be configured to generate client-side drawable geometry 54 as a two-dimensional polygon formed at a location within a building. Example client-side drawable geometry 54 is a two-dimensional polygon formed to match and lie outside the perimeter of the associated building.

[0040] In one example, the client-side drawable geometry 54 can be generated programmatically by the map server 12 based on the interior map 52 of the associated buildings. Figure 3 An example of a building with two floors in floor map 52 is illustrated at (B), including a first floor 70 and a second floor 72. As illustrated, the first and second floors of floor map 52 have different shapes. Therefore, in one example, map server 12 can be configured to generate client-side drawable geometry 54 as a two-dimensional polygon, which is shaped to extend together with the shape formed by the union of all floors of the building's interior map. That is, map server 12 can union all floors in floor map 52, such as the first floor 70 and the second floor 72, and then can generate a two-dimensional polygon based on the shape of the unioned floors. To determine the union of floor map 52, map server 12 can be configured to determine anchor points 74 between the floors of floor map 52.

[0041] For example, anchor point 74 could be an object that runs vertically through the building, and thus could be used to align building floor plan data over each other. For instance, anchor point 74 could be determined based on an elevator or staircase in floor plan 52, since elevators and staircases typically extend vertically through each floor of a building. However, it should be understood that other types of anchor points could be identified, such as, for example, pillars extending vertically through the building, fire escape staircases, etc.

[0042] In one example, anchor point 74 can be identified by marking symbols or words on floor plan 52 that indicate elevators, stairs, or other types of anchor points. Figure 3 In the example illustrated in section (B), anchor point 74 can be determined based on symbols used to identify elevators and stairs in a programmatic manner. In another example, floor map 52 may include text identifying different objects in the floor plan. Therefore, map server 12 can be configured to perform text processing on floor map 52 to identify terms such as "elevator," "stairs," or other objects used as anchor points. In yet another example, anchor points can be manually identified by the administrator of map server 12.

[0043] After determining anchor points 74, each floor 70 and 72 of the floor map 52 can be joined together through those anchor points 74. The joined floor maps can then be used together to generate a polygonal shape from which client-side drawable geometric elements 54 can be created, such as... Figure 3 As shown in section (A).

[0044] Each client-side drawable geometry 54 can be generated programmatically for each interior map 52 associated with one or more buildings in this manner. However, it should be understood that other techniques can also be used to generate the client-side drawable geometry 54. For example, map server 12 can use a graphical depiction of the building coverage area 48 in bitmap image 44 to generate the polygon of the geometry. In another example, map server 12 can use satellite imagery to generate the polygon shape of geometry 54. In yet another example, the polygon shape of geometry 54 can be manually generated by the administrator of map server 12.

[0045] As discussed above, the target tile 56 sent to client device 14 includes a pre-drawn bitmap image 58 and a target client-side drawable geometry 60 separate from the bitmap image 58. In one example, the target client-side drawable geometry 60 sent from map server 12 to client device 14 does not include bitmap data. Instead, the client-side drawable geometry 60 includes data that can be used by client mapping program 28 on client device 14 to draw the geometry 60 and overlay the drawn geometry onto the pre-drawn bitmap image 58 based on associated geospatial reference data 46.

[0046] Figure 4 An example is illustrated at (A) if a pre-drawn bitmap image 58 is sent from map server 12 to client device 14. The pre-drawn bitmap image 58 is drawn by map server 12. Additionally, as discussed above, the pre-drawn bitmap image 58 is drawn for each level of detail 42 and stored together with tile 40. Figure 4In the example illustrated, the pre-drawn bitmap image 58 also includes a graphic depiction of the building coverage area 48 of one or more buildings 50.

[0047] Figure 4 An example of a client-side drawable geometry 54, drawn by the client-side mapping program 28 and merged with a bitmap image 58, is illustrated at (B). Based on geospatial reference data 46, the drawn geometry 54 has been overlaid on the building 50 associated with that geometry. Figure 4 The client-side drawable geometric element 54 at (B) can be interacted with by the user via user input to the client mapping program 28. For example, the user can select the client-side drawable geometric element 54 by clicking on the input. The client mapping program 28 can receive the user input, interpret the user input as pointing to the client-side drawable geometric element 54, and then transmit the selection to the map server 12.

[0048] Turn now Figure 5 Client device 14 can be configured to display a map image 76 comprising multiple tiles 40 within a map view of client mapping program 28. Each tile 40 includes a server-side drawn bitmap image 44, including a graphical depiction of building coverage areas 48. As discussed above, client mapping program 28 can draw client-side drawable geometric elements 54 associated with the displayed tiles 40. The drawn geometric elements 54 can be displayed on at least one building coverage area 48 in the server-side drawn bitmap image 40. Figure 5 In the example illustrated at (A), geometric element 54 is visually distinguishable from the building coverage area 48 in the bitmap image 40. For example, geometric element 54 can be drawn with visually distinguishing characteristics, such as highlights. As a few other examples, geometric element 54 can be drawn to include outlines, colors, shadows, line patterns, line widths, fill patterns, and brightness. However, it should be understood that other types of visually distinguishing characteristics used to differentiate the geometric element 54 drawn on the client side from the building coverage area 48 drawn on the server side when displayed on the client device 14 can be used to draw geometric element 54.

[0049] As discussed above, geometric element 54 can be interacted with by a user via input to client device 14. In one example, a user can interact with geometric element 54 via selection input, including clicking on geometric element 54. In another example, a user can interact with geometric element 54 by hovering a pointer over geometric element 54. Figure 5An example hover interaction is illustrated at (B). The client mapping program 28 can be configured to detect pointers or fingers hovering over the geometric element 54 and, in response, change the visual appearance of the geometric element 54 at the client device 14.

[0050] exist Figure 5 In the example illustrated at (B), the visual appearance of geometric element 54 is altered to emphasize its perimeter. For example, geometric element 54 can be drawn as a perimeter visually distinguishable with thicker line widths, compared to the building coverage area 48 drawn on the server side. However, it should be understood that geometric element 54 can be visually altered in other ways. For example, geometric element 54 can be drawn to include animation when a user selects, hovers over, or otherwise interacts with the geometric element. As specific examples, animation could include moving line segments, moving perimeters, changing colors, etc.

[0051] In another example, performing a change in detail level 42 or repositioning the map results in a client-side animation that visually distinguishes geometric element 54. For example, a user can change the zoom level of the client map application 28 via zoom control 38, or scroll the map vertically or horizontally. After detecting one of these user inputs, the client map application 28 can be configured to use client-side animation to draw geometric element 54 within the view. As a concrete example, geometric element 54 can be drawn to fade in and out as the user stops zooming or stops moving the map. In this way, the presence of geometric element 54 can be visually conveyed to the user via animation.

[0052] It should be understood that the visual changes discussed above are merely exemplary and any other type of visual change and animation can be used to visually distinguish geometric elements 54 from building coverage areas 48 and to indicate the detection of user interaction 54 with geometric elements.

[0053] Figure 6The illustration depicts an example user interaction where a user clicks and selects geometric element 54. Client mapping program 28 can be configured to detect the selection of geometric element 54. As discussed above, in response to detecting a selection, client mapping program 28 can send a request 62 including an identifier of the selected geometric element 54. Map server 12 receives the request 62 from the client device in response to the selection of a client-side drawable geometric element at the client device and transmits one or more tiles, including an interior map 68 of a building, for display within the map view window of client device 14. The requested tiles(s) typically include server-side drawing of the interior map 68 associated with the geometric element 54 selected by the user. In another example, the requested tiles(s) may include associated data for the interior map 68, and client device 14 can be configured to draw the interior map 68 using geospatial reference data and merge the pre-drawn bitmap image data of the requested tiles(s) 64 with the drawn interior map.

[0054] Briefly return to Figure 1 Each client-side drawable geometric element 54 is associated with metadata 78, which indicates a predetermined level of detail 42 and a predetermined location and orientation for displaying a tile 40, including an indoor map 68 associated with that client-side drawable geometric element 54, within the map view window of the client mapping program 28. After receiving a request 62 and identifying the selected geometric element, the map server 12 can determine the requested tile 64 having the predetermined level of detail 42 indicated in the metadata 78. The tile 64, including a pre-drawn bitmap image 66 and an indoor map 68, can then be sent to the client device 14 for display. As discussed above, in some examples, the map server 12 can be configured to merge the indoor map 68 and the bitmap image 66 into a single drawn bitmap image sent to the client device. In another example, the client mapping program 28 can be configured to merge the bitmap image 66 and the indoor map 68 into the requested tile 64 based on geospatial reference data 46.

[0055] In one example, metadata 78 can be generated programmatically. For instance, a predetermined level of detail 42 can be set as the default level suitable for the indoor map 52. In another example, metadata 78 can be generated by an administrator who determines the optimal level of detail 42, location, and orientation for viewing the indoor map 52 associated with the geometric element 54. However, it should be understood that other techniques can be used to generate metadata, such as, for example, crowdsourcing the best-matching metadata based on how users typically view the indoor map 52.

[0056] Return to Figure 6The selection of geometric element 54 results in the display of an interior map 68 drawn on the server side of the building associated with the selected geometric element 54. For example, as discussed above, the selection of geometric element 54 results in the sending of a request 62 for a tile. The requested tile 64 is transmitted to the client device 14. The requested tile 64 has a specified level of detail 42 as specified in the metadata 78 associated with the selected geometric element. In response to receiving the selection indicated by request 62, the client mapping program 28 can display a bitmap image 66 at the predetermined location and orientation indicated in the metadata 78 associated with the selected geometric element 54 and at the specified level of detail 42.

[0057] exist Figure 6 In the example illustrated, the requested tile 64, including a pre-drawn bitmap image 66 and an interior map 68 merged with the bitmap image, is presented via a client mapping program at a specified level of detail, location, and orientation. After the requested tile is displayed, the user can interact with the interior map 68 via the client mapping program 28. For example, the user can select different floors in the interior map 68 via the floor tool 80. In one example, when the displayed interior map 68 includes multiple floors, the metadata 78 may also include the default floor for the initial display, such as, for example, the first floor. However, it should be understood that other floors can be used as the default floor, such as the top floor, the bottom floor, etc. The default floor can be set by the user of the client mapping program 28 for all interior maps to be displayed. In another example, the default floor map is set in the metadata 78 by the administrator of the map server 12.

[0058] To exit the view of indoor map 68, the user can zoom out from the tiles. When the zoom level reaches a threshold level beyond the detail level of the tiles that include indoor map 68, a new tile that does not include indoor map 68 will be displayed. For example, the new tile can be displayed as including drawn geometric elements at the location of indoor map 68. In another example, according to the techniques and processes discussed herein, the user can select different geometric elements 54 to move to different views of indoor maps. In this way, the user can easily switch between target indoor maps using geometric elements 54.

[0059] Figure 7The illustration shows an example where indoor map 52 is a private indoor map accessible only to authorized users. In this example, map server 12 can be configured to receive user authentication credentials and, before transmitting tile 40 including indoor map 52 to client device 14, verify that the user is an authorized user authorized to access indoor map 52 based on the user authentication credentials. As a specific example, map server 12 may include an authorization protocol to determine whether client computer device 14 is authorized to access the private indoor map. For example, map server 12 may implement an authorization protocol such as OAuth 2.0 and may determine whether the user of client computer device 14 is authorized to access the private indoor map based on an authorization token received from client computer device 14. It should be understood that map server 12 may implement other types of authorization technologies and protocols not specifically described above to determine whether a particular user and / or client computer device is authorized.

[0060] exist Figure 7 In the example illustrated at (A), the user is an authorized user who has access to a private indoor map currently in view. In this example, map server 12 can be configured to send the corresponding client-side drawable geometry 82 associated with the private indoor map. The user can then access the private indoor map by selecting the corresponding geometry 82. Figure 7 The diagram at (B) illustrates the view of a second unauthorized user on the same portion of the map. As shown, the unauthorized user is not sent the corresponding client-side drawable geometric element 82 associated with the private indoor map and is therefore unaware of the existence of the private indoor map. Furthermore, the unauthorized user cannot select geometric element 82 to access the private indoor map.

[0061] In another example, even if a user requests a private indoor map, map server 12 can be configured to verify whether the user is authorized to access the private map data. If the user is not authorized, map server 12 will not send the private indoor map to the unauthorized user. Instead, map server 12 can be configured to send bitmap image data including the outdoor map and tiles of any public indoor map available in that portion of the map.

[0062] Briefly return to Figure 1Map server 12 can be configured to determine multiple internal map features 84 of at least one indoor map 52. As will be discussed in more detail below, the internal map features 84 can be determined via various techniques. For example, the internal map features 84 can be determined based on metadata associated with the indoor map 52. For example, the metadata associated with the indoor map 52 may indicate the name, location, and other information about entities located within the building associated with the indoor map 52. As another example, the metadata associated with the indoor map 52 may indicate prominent locations within the building, such as restrooms, entrances, exits, etc. In yet another example, the internal map features 84 can be determined based on performing image processing on the indoor map 52 to enable machine recognition of the internal map features of the indoor map 52.

[0063] After determining the internal map features 84, the map server 12 can be configured to generate client-side drawable visual features 86 for client-side drawable geometric elements 54 associated with at least one indoor map 52. Client-side drawable visual features can be generated to visually convey the internal map features 84 onto the client-side drawable geometric elements. For example, client-side drawable visual features 86 can change the color of the geometric elements, add shapes or logos to the geometric elements, add images or animations to the geometric elements, or otherwise add visual features 84 that convey the internal map features to the user. Several example visual features will be discussed in more detail below.

[0064] Figure 8An example of an indoor map 52 including various internal map features 84 that can be machine-recognized by map server 12 is illustrated. For example, map server 12 can be configured to perform image processing on indoor map 52 to identify internal map features 84 based on icons, text, or images included in indoor map 52. These machine-recognizable internal map features may include, for example, entrance / exit map features 88, restroom map features 90, map features 92 compliant with the Americans with Disabilities Act (ADA), business or retail space map features 94, etc. It should be understood that internal map features 84 that can be machine-recognized by map server 12 are not limited to the examples shown. After identifying one or more internal map features 84, map server 12 can be configured to generate client-side plottable visual features 86 that visually convey one or more internal map features 84. For example, map server 12 can be configured to generate visual features 86 such as entrance / exit indicators that can be plotted on geometric elements, color-coded visual features that indicate the type of business located inside a building on the indoor map, visual indicators that a building has accessible or public restrooms, etc. One advantage of using machine recognition technology to identify interior map features 84 is that the map server can use indoor maps that include pixel data but not structured data of interior map features 84. Alternatively, it should be understood, as discussed above, Figure 8 The internal map features 84 depicted in the map can be determined by the map server 12 based on the metadata associated with the indoor map.

[0065] In one example, to mitigate potential visual clutter, map server 12 can be configured to generate visual features 86 only for a subset of identified interior map features 84. Map server 12 can be configured to select one interior map feature from the multiple interior map features 84 based on selection criteria. For example, selection criteria can be set by an authorized user associated with at least one interior map 52. As an example, a user authorized to manage a specific interior map 52 on map server 12 can manage the selection criteria. For example, an administrator might want to present a business within a building via geometric elements. As another example, an administrator might want to present the building's entrances and exits via geometric elements to potential visitors. In yet another example, selection criteria can be set by map server 12 or its administrator. For example, as some limited examples, map server 12 might default to displaying restaurants, retail locations, entrances, or restrooms.

[0066] Figure 9 The illustration shows an example of a client-side drawable visual feature 86 that can be drawn on a client-side drawable geometric element 54. Figure 9The illustration at (A) shows an example of a selectable interior map feature in the form of tenant map feature 94, which can be plotted as visual feature 86. In this example, the plottable visual feature 86 includes the tenant's signage and name located in the building associated with the geometric element. In this example, the tenant is a business called "Food Mart". The plottable visual feature 86 may also include colors selected based on the tenant's business type. For example, a food business (e.g., a restaurant) might be associated with a first color, a retail business with a second color, a private office with a third color, an entertainment business with a fourth color, and so on. Geometric elements can be plotted in different colors to visually indicate the type of business included in the interior map. In this way, the styles of different interior map feature types can be set differently. Furthermore, these styles can be set, for example, based on style templates stored on the client side.

[0067] As another example, Figure 9 At (B), a drawable visual feature 86 of the entrance / exit map feature is illustrated, indicating the location of the building's entrance or exit associated with the geometric element. As discussed above, the shape of the geometric element is generated to match the union of all floors in the building's coverage area or interior map of the building. Therefore, the building's entrances and exits can be visually indicated on the geometric element. As yet another example, Figure 9 At (C), a plottable visual feature 86 for a restroom and / or ADA-compliant map feature is illustrated. Similar to entrance / exit map features, the plottable visual feature 86 for a restroom and / or ADA-compliant map feature is illustrated with an icon at its corresponding location on geometric element 54, the icon corresponding to the actual location of those map features in the interior map. It should be understood that the example plottable visual features and interior map features discussed above are merely exemplary, and other types of interior map features 84 may be identified and other types of visual features may be plotted on geometric element 54.

[0068] Figure 10 The illustration shows examples where plottable visual features 86 can be used to visually indicate other types of data that can be associated with an indoor map 52 or a corresponding building. In these examples, map server 12 can be configured to receive data feeds 96 associated with at least one indoor map 52. Data feeds 96 can be received from different sources. Figure 10In the example illustrated at (A), map server 12 can be configured to receive data feeds 96 from multiple client devices 98 located within a physical building associated with indoor map 52. That is, client devices 98 interacting with a map application of map server 12 can send location data 100 to map server 12. Map server 12 can be configured to aggregate the location data 100 into a building crowd traffic data feed. Next, map server 12 can be configured to generate client-side drawable visual features 86 that visually convey the summary of data feeds 96 on client-side drawable geometry elements 54. Figure 10 In the example illustrated at (A), the visual feature 86 that can be drawn on the client side is a graphical visual feature that represents the building crowd traffic data feed in the form of a heat map that can be displayed on geometric element 54.

[0069] As another example, Figure 10 The diagram at (B) illustrates a data feed 96 for business hours data 102 of a building associated with indoor map 52, belonging to tenants or other entities. Business hours data 102 can be received from another server 104. As a specific example, the other server 104 may be controlled by the entity owning the building. As another example, the other server 104 may be a third party aggregating the business hours data. In any of these examples, map server 12 may be configured to receive the data feed 96 of business hours data 102 and may generate visual features 86 that visually convey the summary of the business hours data. Figure 10 In the example illustrated at (B), visual feature 86 is a textual visual feature indicating that the building is closed. As another example, a visual feature may include numbers indicating the specific operating hours of tenants within the building.

[0070] Figure 10 Data feed 96 for event data 106 associated with buildings linked to interior map 52 is shown at (C). Event data 106 can similarly be received from another server 104, such as a server associated with an entity that owns the building or a third party that aggregates event data. Map server 12 can be configured to generate visual features 86 that visually convey whether an event is currently occurring at building 50 associated with interior map 52. Figure 10 In the example illustrated at (C), visual feature 86 is a drummer icon, which visually conveys that a musical or concert event is taking place at building 50.

[0071] It should be understood that the data feed 96 and client-side drawable visual features 86 discussed above are merely exemplary, and other types of data feeds can be received from other data sources. Furthermore, other forms of visual features 86 can be generated to visually convey the summary of those data feeds. As some non-limiting examples, client-side drawable visual features 86 can take the form of data charts, graphs, icons, text, numbers, colors, shadows, animations, etc.

[0072] As discussed above, when generating client-side drawable geometry, map server 12 can set the style of visual features 86 within the client-side drawable geometry to an absolute value. Alternatively, the style of visual features 86 can be set to a style assigned to a specific internal map feature type represented by each visual feature 86 according to a style template. The style template can be maintained on the client device and applied during the client-side drawing process of the client-side drawable geometry. Alternatively, the style template can be maintained on map server 12 and applied when generating client-side drawable geometry. In this way, for example, a museum can set the visual features 86 of all restrooms on its indoor map to a common theme or color, for example, matching the museum's logo. Alternatively, the map platform operator can set a constraint in the style template that indicates that restrooms on the indoor map should be blue and outlined with a thick white line on all indoor maps in the system for easy identification by system users of each facility and location. Finally, it should be understood that in some examples, users can customize the style template. In this way, one user can configure their client device to display the visual features 86 representing the restaurant in red, while another user can choose blue.

[0073] Figure 11 A flowchart is shown for an example method 900 for generating client-side drawable geometric elements for computerized map creation. Method 900 can be generated by... Figure 1 This can be achieved using a computerized map-making system 10 or other suitable computer hardware.

[0074] Method 900 includes steps 902-910 in the map preparation phase. At 902, method 900 may include: generating map data organized into a series of tiles at different levels of detail. The map data also includes interior maps of buildings. As shown in 902A, the interior map may be one of multiple interior maps provided for each of a subset of multiple buildings in the map data. Typically, only some (not all) of the buildings in the map data have available interior maps. As shown in 902B, each tile has an associated bitmap image of a portion of the map drawn at a specified level of detail. The bitmap image of the subset of tiles includes a graphical depiction of the building coverage areas of the multiple buildings. The interior maps are drawn on the server side in the bitmap image at the specified level of detail.

[0075] At 904, method 900 may include: generating client-side drawable geometry for an indoor map (or for each of multiple indoor maps when multiple indoor maps are provided). Client-side drawable geometry typically includes perimeters and client-side drawable visual features of the interior map features for the indoor map. Client-side drawable geometry can be generated via various techniques, as described below.

[0076] In one example, step 904 may include steps 905, 906, and 908. At 905, method 900 includes determining the perimeter based on data included in the indoor map. In one example, the client-side drawable geometry may be generated based on the combined shape of all floors of the indoor map associated with the geometry. As an alternative to the determination at 905, in other embodiments, such as using image processing techniques that construct contours from aerial photographic images, the perimeter of the client-side drawable geometry may be generated based on the building coverage area of ​​the building associated with the geometry. At 906, method 900 may include selecting an indoor map feature from a plurality of indoor map features of at least one indoor map based on selection criteria. As shown in 906A, the selection criteria may be set by an authorized user of the indoor map, such as a developer, administrator, etc., with an authorized account on the map server, through which the authorized user is authorized to access and / or edit the indoor map, for example, through the application programming interface of the map server. Authorized users can set selection criteria to specific locations, location types, facilities, facility types, rooms, corridors, entrances, exits, routes, or other features of the indoor map described herein, so that visual features can be plotted on the client side. For example, map features such as specific restrooms(s), entrances, exits, businesses, etc., can be selected based on selection criteria. Furthermore, as mentioned above, selection criteria can be programmatic and based on input from the data feed described above. Alternatively, as shown in 906B, selection criteria can be determined by map server 12. For example, the map server can be configured to set selection criteria to indicate internal map features that can be selected based on metadata associated with the indoor map. In another example, internal map features can be determined by the map server based on machine recognition of icons, text, or other visual data of the indoor map.

[0077] At 908, method 900 may include generating client-side plottable geometric elements associated with at least one indoor map to include plottable visual features that visually convey selected indoor map features after being plotted at the client device. Example indoor map features and plottable visual features have been discussed above and in... Figures 8 to 10 The image is shown in the middle.

[0078] At 910, method 900 may include associating each client-side drawable geometry with one or more tiles. Each client-side drawable geometry may be associated with one or more tiles, including buildings associated with that geometry. Each geometry may also be associated with tiles at a specific level of detail on the map.

[0079] Figure 12 The continuation of the map service phase is shown. Figure 11The flowchart of method 900 is as follows. At 912, method 900 may include: sending a request from a client device to a map server to view a portion of a map, which at least partially includes buildings available for displaying the indoor map. At 914, method 900 may include: receiving a request from the client device at the map server to view a portion of a map, which at least partially includes buildings, for which an indoor map at a requested level of detail is available outside the area used to display the indoor map. The request may be for a specific tile on which the building is at least partially located.

[0080] At 916, method 900 may include sending user authentication credentials to the map server from the client device. For example, user authentication credentials may include OAuth 2.0 tokens, account login names / passwords, or other types of credentials used for authentication protocols.

[0081] At 918, method 900 may include receiving user authentication credentials from a first user and a second user at the map server. That is, the map server can be configured to communicate with multiple client devices. Each client device can be configured to send user authentication credentials to the map server.

[0082] At 920, method 900 may include confirming, based on user authentication credentials, that the first user is an authorized user authorized to access the private indoor map and the second user is not an authorized user of the private indoor map.

[0083] At 922, method 900 may include transmitting to a client device a target tile having a pre-drawn bitmap image of a building, and client-side drawable geometric elements having client-side drawable visual features of an interior map, including perimeter and interior map features, for display. The interior map features of the interior map are selected based on selection criteria set by an authorized user of the interior map. As shown in 922A, in one example, the method may include an access control scheme where only authorized users can view the target client-side drawable geometric elements. Therefore, the method may include transmitting the target client-side drawable geometric elements to an authorized first user but not to an unauthorized second user. In other words, the method may include transmitting a target tile having a pre-drawn bitmap image including a building and the target client-side drawable geometric elements to a first user's client device for display, and transmitting a target tile having a pre-drawn bitmap image including a building but without the target client-side drawable geometric elements to a second user's client device for display.

[0084] At 924, method 900 may include receiving a target tile at a client device. As discussed above, a first client device of a first user may receive the target tile and target client-side drawable geometry for display. On the other hand, a second client device of an unauthenticated second user may receive a target tile without target client-side drawable geometry.

[0085] At 926, method 900 may include displaying a map image comprising multiple tiles, each tile comprising a bitmap image drawn on the server side, the bitmap image comprising building coverage areas. Figure 5 The illustration shows an example of a displayed map image that includes four tiles. This tile set includes multiple building coverage areas and geometric elements drawn on the client side.

[0086] At 928, method 900 may include displaying geometric elements drawn on the client side on at least one building coverage area in a bitmap image drawn on the server side, the geometric elements being visually distinguishable from the building coverage area in the bitmap image, the geometric elements being selectable so that an indoor map is displayed.

[0087] Figure 13 continue Figure 12 Method 900. At 930, method 900 may include receiving a selection of a client-side drawable geometry element. A user may select the geometry element via click input using an input device of the client device. When a first user's first client device receives a client-side drawable geometry element, such as by selecting the element via click, the user can interact with the client-side drawable geometry element. On the other hand, a second user's second client device may not receive a client-side drawable geometry element. Therefore, the user may not be able to interact with the geometry element.

[0088] At 932, method 900 may include sending a request for tiles that include a map image at a specified level of detail, wherein the indoor map is visible in the map image at the specified level of detail. At 934, method 900 may include receiving at the map server a request from the client device in response to a request made at the client device for selection of client-side drawable geometric elements.

[0089] At 936, method 900 may include transmitting tiles including an interior map of a building for display within a map view window of a client device. At 938, method 900 may include receiving tiles including an interior map at the client device.

[0090] At 940, method 900 may include displaying a tile comprising a map image at a specified level of detail at a predetermined location and orientation indicated in the metadata associated with the selected client-side drawable geometry. It should be understood that receiving a selection of a client-side drawable geometry causes the tile comprising a map image at the specified level of detail to be displayed in this manner. Users can switch to different floor plans by selecting different client-side drawable geometry elements in the map.

[0091] Using the aforementioned technology, interactive polygons representing buildings can be displayed at their correct geospatial locations on a map. Users can interact with these polygons to view specific interior maps. In this way, potentially noisy interior map data is not displayed until the user needs it, thus reducing the possibility of visual clutter on the map caused by features drawn from the client side. These interactive polygons also provide users with an intuitive way to interact with and view different interior maps.

[0092] In some embodiments, the methods and processes described herein can be attached to a computing system of one or more computing devices. In particular, such methods and processes can be implemented as computer applications or services, application programming interfaces (APIs), libraries, and / or other computer program products.

[0093] Figure 14 A non-limiting embodiment of a computing system 1200 that can implement one or more of the methods and processes described above is schematically illustrated. The computing system 1200 is shown in a simplified form. The computing system 1200 can embody the above-described and... Figure 1 The computerized map-making system 10 is illustrated in the figure. The computing system 1200 may take the form of one or more personal computers, server computers, tablet computers, home entertainment computers, network computing devices, gaming devices, mobile computing devices, mobile communication devices (e.g., smartphones), and / or other computing devices, as well as wearable computing devices such as smartwatches and head-mounted augmented reality devices.

[0094] The computing system 1200 includes a logic processor 1202, volatile memory 1204, and non-volatile storage device 1206. The computing system 1200 may optionally include a display subsystem 1208, an input subsystem 1210, a communication subsystem 1212, and / or... Figure 14 Other components not shown.

[0095] The logic processor 1202 includes one or more physical devices configured to execute instructions. For example, the logic processor may be configured to execute instructions that are part of one or more applications, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform tasks, implement data types, transform the state of one or more components, achieve technical effects, or otherwise achieve desired results.

[0096] A logic processor may include one or more physical processors (hardware) configured to execute software instructions. Additionally or alternatively, a logic processor may include one or more hardware logic circuits or firmware devices configured to execute hardware-implemented logic or firmware instructions. The processor of logic processor 1202 may be single-core or multi-core, and the instructions executed thereon may be configured for sequential, parallel, and / or distributed processing. Individual components of the logic processor may optionally be distributed across two or more separate devices that may be remotely located and / or configured for coordinated processing. Aspects of the logic processor may be virtualized and executed on remotely accessible networked computing devices configured in a cloud computing configuration. In this case, it is understandable that these virtualized aspects run on different physical logic processors on various different machines.

[0097] The non-volatile storage device 1206 includes one or more physical devices configured to store instructions executable by a logic processor to implement the methods and processes described herein. When such methods and processes are implemented, the state of the non-volatile storage device 1206 can be transformed—for example, to store different data.

[0098] The non-volatile storage device 1206 may include removable and / or built-in physical devices. The non-volatile storage device 1206 may include optical memory (e.g., CD, DVD, HD-DVD, Blu-ray disc, etc.), semiconductor memory (e.g., ROM, EPROM, EEPROM, flash memory, etc.), and / or magnetic memory (e.g., hard disk drive, floppy disk drive, magnetic tape drive, MRAM, etc.) or other high-capacity storage technologies. The non-volatile storage device 1206 may include non-volatile, dynamic, static, read / write, read-only, sequential access, location-addressable, file-addressable, and / or content-addressable devices. It should be understood that the non-volatile storage device 1206 is configured to retain instructions even when the non-volatile storage device 1206 is powered off.

[0099] Volatile memory 1204 may include a physical device including random access memory. Volatile memory 1204 is typically used by logic processor 1202 to temporarily store information during the processing of software instructions. It should be understood that when power is turned off, volatile memory 1204 typically does not continue storing instructions.

[0100] The logic processor 1202, volatile memory 1204, and non-volatile storage device 1206 can be integrated together into one or more hardware logic components. Such hardware logic components may include field-programmable gate arrays (FPGAs), application-specific integrated circuits (PASICs / ASICs), application-specific standard products (PSSPs / ASSPs), system-on-a-chip (SoCs), and complex programmable logic devices (CPLDs).

[0101] The terms "module," "program," and "engine" can be used to describe an aspect of computing system 1200 that is typically implemented in software by a processor to perform specific functions using portions of volatile memory. These functions involve transformative processing specifically configured to perform the functions. Therefore, a module, program, or engine can be instantiated via logic processor 1202 using portions of volatile memory 1204 to execute instructions stored in non-volatile storage device 1206. It should be understood that different modules, programs, and / or engines can be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Similarly, the same module, program, and / or engine can be instantiated from different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms "module," "program," and "engine" can include a single executable file or group of executable files, data files, libraries, drives, scripts, database records, etc.

[0102] When included, the display subsystem 1208 can be used to present a visual representation of the data stored by the non-volatile storage device 1206. The visual representation may take the form of a graphical user interface (GUI). Since the methods and processes described herein change the data stored in the non-volatile storage device and thus transform the state of the non-volatile storage device, the state of the display subsystem 1208 can also be transformed to visually represent changes in the underlying data. The display subsystem 1208 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with the logic processor 1202, volatile memory 1204, and / or non-volatile storage device 1206 in a shared housing, or such display devices may be peripheral display devices.

[0103] When included, the input subsystem 1210 may include or interface with one or more user input devices such as a keyboard, mouse, touchscreen, or game controller. In some embodiments, the input subsystem may include or interface with selected Natural User Input (NUI) components. Such components may be integrated or peripheral, and the translation and / or processing of input actions may be handled on-board or off-board. Example NUI components may include microphones for voice and / or voice identification; infrared, color, stereo, and / or depth cameras for machine vision and / or gesture identification; head trackers, eye trackers, accelerometers, and / or gyroscopes for motion detection and / or intent recognition; and electric field sensing components for assessing brain activity; and / or any other suitable sensors.

[0104] When included, the communication subsystem 1212 can be configured to communicatively couple the various computing devices described herein to each other and to other devices. The communication subsystem 1212 may include wired and / or wireless communication devices compatible with one or more different communication protocols. As a non-limiting example, the communication subsystem may be configured to communicate via a wireless telephone network, or a wired or wireless local area network or wide area network (such as an HDMI connection via Wi-Fi). In some embodiments, the communication subsystem may allow the computing system 1200 to send messages to and / or receive messages from other devices via a network such as the Internet.

[0105] In addition, this disclosure includes configurations in accordance with the following terms.

[0106] Clause 1: A computerized map-making system (10) includes: a map server (12) configured to: during the map data preparation phase: generate map data (34) organized into a series of tiles (40) at different levels of detail (42), the map data (34) including interior maps (52) of buildings (50); generate client-side drawable geometric elements (54) of client-side drawable visual features (86) including the perimeter of buildings (50) and interior map (52) at least in part by: determining the perimeter based on data included in the interior map; selecting an interior map feature (84) from a plurality of interior map features (84) based on selection criteria set by an authorized user of the interior map (52); and generating client-side drawable visual features (86) for the selected interior map feature to be drawable on the client side. Visually convey the selected interior map features (84) on the geometric elements (54); associate the client-side drawable geometric elements (54) with one or more tiles (40); during the map service phase: receive a request from the client device (14) to view a portion of the map, which at least partially includes a building (50), for which the requested level of detail of the interior map (52) is available outside the scope used to display the interior map (52); transmit to the client device the target tile (56) with a pre-drawn bitmap image (58) of the building, and the client-side drawable geometric elements (54) with client-side drawable visual features (86) of the interior map features (84) of the interior map (52) for display, the interior map features (84) of the interior map (52) being selected according to the selection criteria set by the authorized user of the interior map (52).

[0107] Clause 2: The computerized map-making system according to Clause 1, wherein the map server (12) is further configured to: during the map service phase: receive from the client device (14) a request in response to the selection of client-side drawable geometric elements (54) on the client device; and transmit tiles including an interior map (52) of buildings for display in the map view window of the client device (14).

[0108] Clause 3: A computerized mapping system according to any one of Clauses 1 and 2, wherein multiple internal map features are selected from a group consisting of entrance location map features, exit location map features, public facility location map features and tenant map features.

[0109] Clause 4: A computerized map-making system according to any one of Clauses 1-3, wherein the map server is further configured to receive data feeds associated with at least one indoor map, and wherein the client side can draw visual features on the client side can draw geometric elements to visually convey the summary of the data feeds.

[0110] Clause 5: The computerized mapping system as described in Clause 4, wherein the received data feeds associated with the indoor map are selected from a group consisting of building crowd traffic data feeds, building business hours data feeds, and event data feeds.

[0111] Clause 6: A computerized map-making system according to any one of Clauses 1-5, wherein the client side can draw geometric elements that are two-dimensional polygons formed at the location of a building within a building, and wherein the polygons are shaped to extend together with the shape formed by the union of all floors of the building's interior map.

[0112] Clause 7: A computerized map-making system according to any one of Clauses 1-6, wherein the indoor map is a private indoor map accessible only to authorized users; and the map server is further configured to receive user authentication credentials and, before transmitting tiles including the indoor map to the client device, verify that the user is an authorized user authorized to access the indoor map based on the user authentication credentials. Clause 8: A computerized map-making system according to any one of Clauses 1-7, wherein map data is organized into a series of tiles at different levels of detail, each tile having an associated bitmap image of a portion of the map drawn at a specified level of detail, the bitmap images of a subset of the tiles including graphic depictions of building coverage areas for buildings, and the indoor map is drawn on the server side and can be merged with bitmap images at a specified level of detail; and client-side drawable geometric elements are associated with metadata indicating a predetermined level of detail and a predetermined location and orientation to display tiles including the indoor map associated with the client-side drawable geometric elements within a map view window.

[0113] Clause 9: A computerized map-making method (900) comprising: at a map server including an associative memory comprising a processor and stored instructions, which, when executed, cause the processor to perform the following steps: in a map data preparation phase: generating (902) map data organized into a series of tiles at different levels of detail, each tile having an associated bitmap image of a portion of a map drawn at a specified level of detail, the bitmap image of a subset of tiles including a graphical depiction of building coverage areas for a plurality of buildings, the map data also including an interior map for each of the subset of buildings, the interior map being drawn on the server side in the bitmap image at a specified level of detail, wherein at least one interior map is a private interior map accessible only to an authorized user; generating (904) client-side drawable geometric elements for each interior map; and connecting each client-side drawable geometric element with... One or more tiles are associated (910); during the map service phase: a request to view a portion of the map, at least partially including a target tile of the requested level of detail outside the area used to display the private indoor map, is received (914) from the client devices of the first user and the second user; user authentication credentials are received (918) from the first user and the second user; based on the user authentication credentials, it is confirmed (920) that the first user is an authorized user authorized to access the private indoor map, while the second user is not an authorized user of the private indoor map; a target tile having a pre-drawn bitmap image including buildings and target client-side drawable geometry is transmitted (922) to the first user's client device for display; and a target tile having a pre-drawn bitmap image including buildings but without target client-side drawable geometry is transmitted (922) to the second user's client device for display.

[0114] Clause 10: The computerized map drawing method according to Clause 9 further includes: receiving (936) a request from a first user's client device in response to selecting a target client-side drawable geometric element at the client device; and transmitting (938) tiles including a private interior map of a building for display in a map view window of the first user's client device.

[0115] Clause 11: The computerized map-making method according to Clause 9, wherein the geometric elements are two-dimensional polygons formed at the location of a building within a building.

[0116] Clause 12: The computerized map-making method according to Clause 11, wherein the polygon is shaped to extend together with the shape formed by the union of all floors of the building’s interior map.

[0117] Clause 13: A computerized map-making method according to any one of Clauses 9-12, wherein, during the map data preparation phase, the generation of client-side drawable geometric elements for each indoor map is accomplished at least in part by: determining the perimeter based on data included in the indoor map; determining a plurality of internal map features of at least one indoor map; selecting an internal map feature from the plurality of internal map features based on selection criteria; and generating client-side drawable visual features for client-side drawable geometric elements associated with at least one indoor map, wherein the client-side drawable visual features visually convey the selected internal map feature on the client-side drawable geometric elements.

[0118] Clause 14: A computerized map-making method (900) comprising: displaying (926) a map image comprising a plurality of tiles, each tile comprising a server-side drawn bitmap image comprising building coverage areas; displaying (928) on at least one of the building coverage areas in the server-side drawn bitmap image a client-side drawn geometric element visually distinguishable from the building coverage area in the bitmap, the geometric element being selectable to cause an interior map to be displayed, the geometric element being drawn to include visual features that visually convey interior map features of the interior map; receiving a selection of the geometric element; and in response to receiving the selection, causing a server-side drawn interior map of a building to be displayed.

[0119] Clause 15: The computerized map-making method according to Clause 14, wherein receiving the selection of geometric elements causes sending a request for tiles comprising a map image at a specified level of detail, wherein an indoor map is visible in the map image at the specified level of detail.

[0120] Clause 16: A computerized map-making method according to any one of Clauses 14-15, wherein performing a change in the level of detail or repositioning the map results in client-side animation that visually distinguishes geometric elements.

[0121] Clause 17: The computerized map-making method according to Clause 15, wherein receiving a selection of a geometric element results in the display of a tile comprising a map image at a specified level of detail at a predetermined location and orientation indicated in the metadata associated with the selected geometric element.

[0122] Clause 18: The computerized map-making method according to any one of Clauses 14-17 further includes: detecting a pointer or finger hovering over a geometric element, and, in response, changing the visual appearance of the geometric element at the client.

[0123] Clause 19: A computerized map-making method according to any one of Clauses 14-18, wherein geometric elements are drawn as including visual distinguishing characteristics selected from the group consisting of highlight, outline, color, shadow, line pattern, line width, fill pattern and brightness, which, when displayed at a client device, are used to distinguish geometric elements drawn on the client side from building coverage areas drawn on the server side.

[0124] Clause 20: A computerized map-making method according to any one of Clauses 14-19, wherein the geometric element is drawn as having a perimeter visually distinguishable by thick line width, compared to the building coverage area drawn on the server side.

[0125] It should be understood that the configurations and / or methods described herein are exemplary in nature, and these specific embodiments or examples should not be considered limiting, as many variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. Thus, the various actions illustrated and / or described may be performed in the illustrated and / or described order, in a different order, in parallel, or omitted. Similarly, the order of the above processing can be changed.

[0126] The subject matter of this disclosure includes all novel and non-obvious combinations and sub-combinations of various processes, systems and configurations, as well as any and all equivalents of other features, functions, actions and / or properties disclosed herein.

Claims

1. A computerized mapping system comprising: a map server configured to: in a map data preparation phase: generate map data organized into a series of tiles at different levels of detail, the map data including an indoor map of a building; generate a client-side drawable geometric element including a perimeter of the building and client-side drawable visual features of internal map features of the indoor map, at least in part by: determining the perimeter based on data included in the indoor map; selecting the internal map features from a plurality of internal map features based on selection criteria set by an authorized user of the indoor map; and generating the client-side drawable visual features for the selected internal map features to visually convey the selected internal map features on the client-side drawable geometric element; associate the client-side drawable geometric element with one or more of the tiles; in a map serving phase: receive a request from a client device to view a portion of the map data including at least in part the indoor map of the building available at a requested level of detail that is outside a range for displaying the indoor map; transmit to the client device a target tile having a pre-drawn bitmap image for the building and the client-side drawable geometric element having the perimeter and the client-side drawable visual features of the internal map features of the indoor map selected according to selection criteria set by the authorized user of the indoor map for display, wherein the map server is further configured to receive a data feed associated with at least one of the indoor maps, wherein the received data feed associated with the indoor map is selected from a group consisting of a building crowd traffic data feed, a building hours of operation data feed, and an event data feed.

2. The computerized mapping system of claim 1, wherein the map server is further configured to: in the map serving phase: receive a request from the client device made in response to a selection of the client-side drawable geometric element at the client device; and transmit a tile including an indoor map of the building for display within a map view window of the client device.

3. The computerized mapping system of claim 1, wherein the plurality of internal map features are selected from a group consisting of an entry point map feature, an exit point map feature, a public facility map feature, and a tenant map feature.

4. The computerized mapping system of claim 1, the client-side drawable visual features visually conveying a summary of the data feed on the client-side drawable geometric element. ​ 5. The computerized mapping system of claim 1, wherein the client-side drawable geometric element is a two-dimensional polygon formed in a location of one of the buildings, and wherein the polygon is shaped to coextend with a shape formed by a union of all floors of the indoor map of the building.

6. The computerized mapping system of claim 1, wherein the indoor map is a private indoor map accessible only by authorized users; and the map server is further configured to receive user authentication credentials and, prior to transmitting the tiles including the indoor map to the client device, confirm that the user is an authorized user having authorization to access the indoor map based on the user authentication credentials.

7. The computerized mapping system of claim 1, wherein the map data is organized into a series of tiles of different levels of detail, each of the tiles having an associated bitmap image of a portion of the map drawn at a specified level of detail, the bitmap images of a subset of the tiles including a graphical depiction of a building footprint for the building, and the indoor map is server-side drawn and is mergable with the bitmap image at the specified level of detail; and the client-side drawable geometric element is associated with metadata indicating a predetermined level of detail and a predetermined location and orientation to display a tile of the indoor map within the map view window including the client-side drawable geometric element.

8. A computerized mapping method, comprising: at a map server including a processor and an associated memory, the memory storing instructions that, when executed, cause the processor to perform the following steps: in a map data preparation phase: generating map data organized into a series of tiles of different levels of detail, each of the tiles having an associated bitmap image of a portion of the map drawn at a specified level of detail, the bitmap images of a subset of the tiles including a graphical depiction of building footprints for a plurality of buildings, the map data further including an indoor map for each of a subset of the plurality of buildings, the indoor map being server-side drawn in the bitmap image at a specified level of detail, wherein at least one indoor map is a private indoor map accessible only by authorized users; generating a client-side drawable geometric element for each indoor map; associating each client-side drawable geometric element with one or more tiles; in a map serving phase: receiving a request from a client device of a first user and a client device of a second user to view a portion of the map, the portion of the map including at least in part a target tile at a requested level of detail, the requested level of detail being outside a range for displaying the private indoor map; receiving user authentication credentials from the first user and the second user; confirming that the first user is an authorized user having authorization to access the private indoor map and that the second user is not an authorized user for the private indoor map based on the user authentication credentials; transmitting to the client device of the first user the target tile having the pre-drawn bitmap image of the building and a target client-side drawable geometric element for display; and transmitting to the client device of the second user the target tile having the pre-drawn bitmap image of the building without transmitting the target client-side drawable geometric element, wherein the steps further comprise receiving a data feed associated with at least one of the indoor maps, wherein the received data feed associated with the indoor map is selected from the group consisting of a building crowd traffic data feed, a building hours of operation data feed, and an event data feed.

9. The computerized cartography method of claim 8, further comprising: receiving from the client device of the first user a request made in response to a selection at the client device of the target client-side drawable geometric element; and transmitting a tile of the private indoor map of the building for display within a map view window of the client device of the first user.

10. The computerized cartography method of claim 9, wherein the client-side drawable geometric element is a two-dimensional polygon formed in the location of one of the plurality of buildings and the polygon is shaped to coextend with a shape formed by a union of all floors of the indoor map of the building.

11. The computerized cartography method of claim 8, wherein the geometric element is a two-dimensional polygon formed in the location of one of the buildings.

12. The computerized cartography method of claim 8, wherein in the map data preparation phase, generating the client-side drawable geometric element for each indoor map is accomplished at least in part by: determining a plurality of interior map features for at least one indoor map; selecting an interior map feature from the plurality of interior map features based on a selection criterion; and generating a client-side drawable visual feature for the client-side drawable geometric figure associated with the at least one indoor map, wherein the client-side drawable visual feature visually conveys the selected interior map feature on the client-side drawable geometric figure.

Citation Information

Patent Citations

  • Enabling quick display transitions between indoor and outdoor map data

    US20150020008A1

  • Method and apparatus for providing integration of access management with navigation systems

    US20170146350A1