Inference of floor numbers and floor labels in a structure

JP2025518080A5Pending Publication Date: 2026-01-21NEXTNAV LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024569654
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-05-26
Filing Date
2023-05-24
Publication Date
2026-01-21

AI Technical Summary

Technical Problem

Determining the exact location of a mobile device, particularly in urban environments with multiple floors, is challenging due to incorrect altitude estimation, which can delay emergency responses and lead to incorrect user navigation.

Method used

A method that selects constraints for an altitude envelope distribution for a physical building, generates altitude envelope distributions corresponding to estimated floor numbers, and determines an absolute aggregate altitude envelope distribution to accurately estimate floor numbers and labels for mobile devices.

Benefits of technology

This method enables accurate estimation of floor numbers and labels for mobile devices without the need for costly building surveys, improving response times in emergencies and user navigation within buildings.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The method includes selecting a set of constraints for the altitude envelope distribution for a building and generating a set of altitude envelope distributions for the building in accordance with the constraints. Each altitude envelope distribution includes one or more first altitude envelopes. The total altitude envelope distribution is generated for the building using the set of altitude envelope distributions and in accordance with the constraints. The total altitude envelope distribution includes one or more second altitude envelopes. A reference altitude of the building is determined, and an absolute total altitude envelope distribution is determined using the reference altitude and the total altitude envelope distribution. The total altitude envelope distribution includes one or more third altitude envelopes, each corresponding to a respective estimated floor number of the building.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Related Applications This application claims the benefit of U.S. Provisional Patent Application No. 63 / 365,357, filed May 26, 2022, the entire disclosure of which is hereby incorporated by reference in its entirety for all purposes.

[0002] Determining the exact location of a mobile device (e.g., a smartphone operated by a user) in an environment can be a significant challenge, particularly when the mobile device is located in an urban environment where there may be areas above ground level (e.g., inside a building). Incorrectly estimating the altitude of a mobile device can have life-or-death consequences for the user of the mobile device. This is because incorrectly estimating the altitude can delay the response time of emergency personnel when searching for users on multiple floors of a building during an emergency. In less urgent situations, incorrectly estimating the altitude can lead the user to the wrong area within the environment.

[0003] In practice, the estimated altitude of a mobile device is often provided or presented relative to a reference coordinate system. Typically, the altitude relative to the ground surface is the height above ellipsoid (HAE) or above mean sea level (AMSL). However, these values may not be useful to the user, assuming that the user can interpret the altitude value as intuitive or not.

[0004] Other ways to report height are: i) height above sea-level (a model of the worldwide mean sea level used for accurate surface height measurements), known as Mean Sea level and determined by using a geoid; ii) high above terrain (HAT), determined using a terrain database; and iii) floor numbers, which are most useful to the user especially when inside a structure.

[0005] While the first two methods are readily available from a geoid and a terrain database respectively, the third method is not easily available as it relies on an extensive database of building floor heights that can be constructed using time-consuming and costly surveys. SUMMARY OF THE INVENTION

[0006] In some embodiments, the method includes selecting a set of constraints for an altitude envelope distribution for a physical building. A set of altitude envelope distributions for the physical building is generated according to the set of constraints for the altitude envelope distribution, each altitude envelope distribution includes one or more first altitude envelopes, and each of the first altitude envelopes corresponds to a respective estimated floor number of the physical building. An aggregate altitude envelope distribution is generated for the physical building using the set of altitude envelope distributions and according to the set of constraints for the altitude envelope distribution, the aggregate altitude envelope distribution includes one or more second altitude envelopes, and each of the one or more second altitude envelopes corresponds to a respective estimated floor number of the physical building. A reference altitude is determined for the physical building, an absolute aggregate altitude envelope distribution is determined using the reference altitude and the aggregate altitude envelope distribution, the aggregate altitude envelope distribution includes one or more third altitude envelopes, and each of the third altitude envelopes corresponds to a respective estimated floor number of the physical building.

[0007] In some embodiments, the system includes one or more servers operable to select a set of constraints on the altitude envelope distribution for a physical building and generate a set of altitude envelope distributions for the physical building according to the set of constraints on the altitude envelope distribution. Each altitude envelope distribution includes one or more first altitude envelopes, and each of the first altitude envelopes corresponds to a respective estimated floor number of the physical building. The overall altitude envelope distribution of the physical building is generated using the altitude envelope distributions and according to the set of constraints on the altitude envelope distribution, and the overall altitude envelope distribution includes one or more second altitude envelopes, and each of the one or more second altitude envelopes corresponds to each estimated floor number for the physical building. A reference altitude of the physical building is determined, and an absolute overall altitude envelope distribution is determined using the reference altitude and the overall altitude envelope distribution, and the overall altitude envelope distribution includes one or more third altitude envelopes, and each of the one or more third altitude envelopes corresponds to each estimated floor number of the physical building.

Brief Description of the Drawings

[0008]

Figure 1

[0009]

Figure 2

[0010]

Figure 3

[0011]

Figure 4

[0012]

Figure 5

[0013]

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

[0014]

Figure 14

[0015]

Figure 15

[0016]

Figure 16

[0017]

Figure 17

[0018]

Figure 18

[0019]

Figure 19

[0020]

Figure 20

[0021]

Figure 21

[0022]

Figure 22

[0023]

Figure 23

[0024]

Figure 24

DETAILED DESCRIPTION OF THE INVENTION

[0025] A method is disclosed herein for estimating floor indicators, such as floor numbers and / or floor labels of a structure, and "mapping" (i.e., logically relating or associating) the estimated floor indicators to corresponding estimated altitudes. Such structures include buildings, parking lots, monuments, and other structures. Such structures are referred to herein as "buildings", although this term is understood to mean any structure having one or more floors. The mapped estimated building floor indicators may be added to a database for later retrieval. When retrieved, the estimated building floor indicators may be used to convert the estimated altitude of a mobile device to an estimated floor number and / or an estimated floor label. For example, in a situation where a user calls an emergency service such as 911 from a high-rise office building, a floor indicator indicating which floor of the building the user is on may be much more useful to the first responder attempting to reach the user than receiving the raw estimated altitude value reported by the user's mobile device.

[0026] When implemented as disclosed herein, estimating floor indicators and mapping them to corresponding altitudes is advantageously performed by a computer, eliminating the need for a costly building survey to create such mapping values for each physical building. The estimated floor indicators of a building include an estimated "floor number" of the building and / or an estimated "floor label" of the building. The floor number and floor label are referred to as "estimated" because they can be generally determined by a computer rather than being determined based on a physical survey of the building. However, in some embodiments, cloud-source data and survey data may be included in the mapped data, so some of the mapped estimated building floor indicators may be mapped based on user or survey or provided data. The choice of which floor indicator to use may be derived from an estimated value, a mapped value, or a combination of the two.

[0027] When referred to in this specification, the floor label is different from the floor number. The floor label as observed by a user may not reflect the count of the true floor number (e.g., the count from the ground up), and can vary from country to country and form to form, thus the above distinction is made. For example, in the United States, the floor label "1st floor" corresponds to the ground level floor, and the floor label "2nd floor" corresponds to the first floor above the ground level. In other countries, the floor label "1st floor" corresponds to the first floor above the ground level floor, and "Ground Floor" corresponds to the ground level. For example, in Montreal, Canada, the ground floor is labeled "RC" of "Rez-de-chausee", which is the French way of saying the ground floor. In another example, the floor label "13th floor" is often omitted even if there is actually a 13th floor due to the negative stigma associated with the number 13. In yet another example, any floor label containing the number 4 is omitted in some countries or cultural spheres due to the negative stigma associated with the number 4, even if there are actually floors 4, 24, 34, 40, etc. The above provides some common examples, but does not comprehensively list all variations.

[0028] Figure 1 shows a simplified operating environment 100 for estimating the floor number and / or floor label of a mobile device according to some embodiments. The operating environment includes a first building 190, a second building 191, mobile devices 120a - e, a satellite 150, a network of terrestrial transmitters 110a - b, and a server 130. Also shown are a positioning signal 153 from the satellite 150, positioning signals 113a - b from each transmitter 110a - b, altitude indicators from altitude 1 to altitude n + 1, and communication signals and command signals associated with the server 130.

[0029] As considered above, the floor labels of a building can vary from building to building. For example, Building 190 includes floors labeled "Floor L1", "Ground Floor", "1st Floor", and "Penthouse" in order from the lowest to the highest. In contrast, Building 191 includes floors labeled "Parking Lot", "1st Floor", and "2nd Floor" in order from the lowest to the highest. Therefore, within each building, even if both Mobile Device 120b and Mobile Device 120e are at the high altitude level 2, or even if both Mobile Device 120b and Mobile Device 120e are at the road surface level, Mobile Device 120b is on the building floor labeled "Ground Floor", while Mobile Device 120e is on the building floor labeled "1st Floor".

[0030] Each of Transmitters 110a - b and Mobile Devices 120a - e can be located at different altitudes or depths, inside or outside of various natural or artificial structures (e.g., Buildings 190 / 191) for different terrains. Positioning Signals 113a - b and 153 are transmitted from Transmitters 110a - b and Artificial Satellite 150 respectively, and then received by Mobile Device 120 using known transmission technologies. It should be understood that only two terrestrial transmitters are shown for simplicity, but the network of terrestrial transmitters 110a - b can include many more transmitters than two. Similarly, only one artificial satellite is shown for simplicity, but it should be understood that Artificial Satellite 150 can include many more artificial satellites than one.

[0031] Transmitters 110a - b can transmit signals 113a - b using one or more common multiplexing parameters such as time slots, pseudorandom number sequences, frequency offsets, or other approaches that are known in the art or disclosed herein. Mobile devices 120a - e may take different forms, such as a mobile phone or another wireless communication device, a portable computer, a navigation device, a tracking device, a receiver, or another suitable device capable of receiving signals 113a - b and / or 153. Examples of possible components in transmitters 110a - b, mobile devices 120, and server 130 are shown in FIG. 24 and discussed below. In particular, each of transmitters 110a - b and mobile devices 120a - e may include an atmospheric sensor (e.g., a barometric pressure, temperature, and / or humidity sensor, a weather station, etc.) for generating measurements of atmospheric conditions (e.g., barometric pressure and temperature) used to estimate the unknown altitude of mobile devices 120a - e.

[0032] There are different approaches for estimating the altitude of a mobile device. In a barometric - based positioning system, altitude can be calculated using the measured pressure from a calibrated pressure sensor of the mobile device in combination with the measured ambient pressure obtained from a network of calibrated reference pressure sensors and the measured ambient temperature obtained from the network or other sources. The estimated value of the altitude (h mobile ) of a mobile device can be calculated as follows by the mobile device, the server, or another device that receives the necessary information. JPEG2025518080000002.jpg1279Where P mobile is the estimated pressure at the location of the mobile device by the pressure sensor of the mobile device, and P sensor is the estimated pressure at the location of the reference pressure sensor with an accuracy within the tolerance pressure obtained from the true pressure (e.g., less than 5 Pa), and T remoteis the estimated value of temperature (e.g., in Kelvin) at the location of the reference pressure sensor or at the location of a different remote temperature sensor, and h sensor is the estimated altitude of the reference pressure sensor estimated within a desired altitude error amount (e.g., less than 1.0 meter), and TIFF2025518080000003.tif32 corresponds to the acceleration due to gravity (e.g., -9.8 m / s 2 ), R is the gas constant, and M is the molar mass of air (e.g., dry air, etc.). The negative sign (-) may be replaced with a positive sign (+) in an alternative embodiment of Equation 1, as would be understood by those skilled in the art (e.g., g = 9.8 m / s 2 ). The estimated value of the pressure at the location of the reference pressure sensor can be converted to an estimated reference level pressure corresponding to the reference pressure sensor in terms of specifying the estimated value of the pressure at a reference level altitude that may be different from the altitude of the reference pressure sensor, but at the latitude and longitude of the reference pressure sensor. The reference level pressure can be determined as follows. JPEG2025518080000004.jpg1381 Wherein P sensor is the estimated value of the pressure at the location of the reference pressure sensor, P ref is the estimated reference level pressure value, and h ref is the reference level altitude. The altitude h mobile of the mobile device can be calculated using Equation 1, where h ref is an alternative to h sensor , P ref is an alternative to P sensor , and the reference level altitude h ref can be any altitude, and is often set at mean sea level (MSL). If two or more reference level pressures are available, their estimated values of the reference level pressures are combined (e.g., using an average, weighted average, or other appropriate combination of reference pressures) into an estimated value of a single reference level pressure, and the estimated value of that single reference level pressure is used for the reference level pressure estimate P ref .

[0033] When disclosed in this specification, a building model corresponding to a physical building is constructed by a computer from separate "stacked" floors. That is, the building model is "constructed" by the computer determining vertical boundaries and / or offsets for each floor of the building model and accumulating those vertical boundaries and / or offsets. The term "building floor number" is taken to mean the level in the building and not the actual surface on which a user will stand. The physical space that a user may occupy on a floor is referred to herein as the "elevation envelope" bounded by the lowest surface of the floor (i.e., the "base plane" of that floor) and the ceiling of that floor, and these bounds are separated by the separation from the base plane to the ceiling.

[0034] The elevation envelope of the first floor is "stacked" above or below the top of the elevation envelope of the second floor, along with the appropriate intervening floor / ceiling separation value ("boundary thickness") that logically and / or mathematically associates the first floor with the second floor. This boundary thickness can be the thickness of the floor or the ceiling depending on the convention chosen. As a simple example, a building model with two stacked floors can have a building model height value equal to the sum of the heights of each floor. Alternatively, a building model with two stacked floors can have a building height value equal to exactly the height of the topmost stacked floor when modeled with the bottom floor as the base.

[0035] In some embodiments, the elevation envelope of each floor of the building model is stacked either above the top of the lowest starting point of the building model or above the top of another floor. In other embodiments, each floor of the building model is stacked either below the topmost starting point of the building model or below another floor. Each floor includes a vertical distance called the floor-to-floor separation. The floor-to-floor separation includes the separation from the base plane to the ceiling of the floor as well as the boundary thickness.

[0036] FIG. 2 shows a simplified example 200 of building models 290a and 290b corresponding to a physical building (e.g., building 190 of FIG. 1) according to some embodiments. The first building model 290a includes floors 220a - d, boundary thickness values 206a - d, separation values 202a - d from the base surface to the ceiling, and inter - floor separation values 204a - d. The second building model 290b includes floors 220e - h, boundary thickness values 206e - h, separation values 202e - h from the base surface to the ceiling, and inter - floor separation values 204e - h. The floor labeled as floor 0 is assumed to be underground. The base surface of the floor 220b labeled as floor 1 of the building model 290a is assumed to coincide vertically with the top surface of the terrain. In contrast, the base surface of the floor 220f labeled as floor 1 of the building model 290b is assumed to deviate from the top surface of the terrain by the amount of the boundary thickness value 206e labeled as the boundary thickness.

[0037] In some embodiments, it is assumed that the inter - floor separation values are uniform throughout the building model. In other embodiments, it is assumed that the inter - floor separation values are non - uniform in part or all of the building model. For example, the inter - floor separation values may be relatively large for some floors (e.g., when modeling a hotel lobby).

[0038] In some embodiments, it is assumed that the boundary thickness values are uniform throughout the building model. In other embodiments, it is assumed that the boundary thickness values are non - uniform in part or all of the building model. For example, the boundary thickness values may be relatively large for some floors, such as when modeling the ceiling above a lobby or the floor below a large conference room. The boundary thickness values at the top of the building model (also known as the roof thickness) (e.g., 206d and 206h) can also be made larger than the boundary thickness values of the rest of the building model.

[0039] In some embodiments, locations within a home where people are typically less likely to be present, such as where a person may physically be located in an attic or crawl space, are considered. An attic is generally located directly above the top floor of a building but below the roof. An attic often does not have a horizontally flat ceiling and is constrained by the roof and the thickness of the floor / ceiling directly above the top floor. A crawl space is a small area that typically exists beneath a building and has few vertical gaps used for routing wiring, cables, and pipes.

[0040] To configure an attic when modeling a physical building, in some embodiments, an additional floor with a typically small maximum separation from floor to ceiling is added near the top of the estimated floors. In some embodiments, if a building database provides statistics on the height of a building, such as a maximum height (corresponding to the peak of the roof) or a minimum height (corresponding to the outline of the roof, or the lowest point of the roof), a difference exceeding a threshold (e.g., 2 meters) can be calculated, and this calculated difference can then be used to determine whether the roof is sloped and thus may potentially include an attic space. This is more typical for residential than commercial buildings. If the building database does not provide the minimum and maximum building heights, the height of a given building can be set to some amount, such as an average or median value, between the minimum / maximum or some value in between.

[0041] In some embodiments, when the building database provides only one height for a building and it is unknown whether the provided height corresponds to the maximum or minimum height (i.e., the roof contour) of the building, it may be inferred whether the provided height corresponds to the maximum or minimum height based on the building's form, architectural trends, building regulations (i.e., city, town, and village rules), building information, or other information. For example, if the building database indicates that a particular building is 5 m tall, the building could either have two levels (each 2.5 m) with a flat roof or be a single-story house with a ceiling height of 3 - 3.5 m from the floor and a 1.5 - 2 m attic. However, if the building is located in a suburban area such as San Jose and it is known that neighboring houses are single-story, or if the building regulations mandate single-story houses, it can be assumed that the 5 m height is the maximum of the roof and not the roof contour. Conversely, if it is known that neighboring houses have multiple levels or if the building in question is a condominium known to have units (i.e., Unit 101, Unit 201) with multiple levels, it can be assumed that the 5 m height is the roof contour and thus the building is two stories tall.

[0042] In order to configure the underfloor space when modeling a physical building, in some embodiments, additional underground vertical separation is added near the bottom of the estimated floor. This additional underground vertical separation typically does not exceed 1 m, for example, for modeling the underfloor space when constructing the estimated floor number. Such embodiments may architecturally form a base in conjunction with the details of the building's foundation used to infer the existence of the underfloor space (for example, a house on a concrete slab probably does not have an underfloor space). Other embodiments may use the building footprint to determine whether there is an attic or underfloor space in the building. Other embodiments are market-based, and there are markets like New Orleans that do not have underground features due to the risk of flooding. There may be markets occupied by spire-shaped rooftops (to protect from snow), or markets occupied by flat rooftops, which can be used to infer whether there is likely to be an attic.

[0043] Each floor of the building model is associated with one or more altitude envelopes. The altitude envelope is the range of altitudes bounded by a minimum altitude envelope and a maximum altitude envelope, corresponding to the bounds regarding where a user of a mobile device may physically be located on each floor of the physical building, where it is assumed that this bound cannot reach inside the floor or ceiling.

[0044] For a building model constructed using a uniform floor-to-floor separation value, assuming the counting starts at floor number = 1 and the base plane coincides with the terrain (i.e., floor number 1 should have the minimum altitude envelope value of 0 m), the range of the altitude envelope can be defined as follows. JPEG2025518080000005.jpg788 and JPEG2025518080000006.jpg7106

[0045] For a building model constructed using a non-uniform floor-to-floor separation value, assuming the counting starts at floor number = 1, the range of the altitude envelope can generally be defined as follows. JPEG2025518080000007.jpg11123 and JPEG2025518080000008.jpg12118 where the "target floor" is the maximum floor number considered, and the boundary thickness of a given floor' is directly above the separation from the floor to the ceiling.

[0046] (For example, as shown for the building model 290b in Figure 2) For a building model constructed using a uniform floor - to - floor separation value where the ground floor of the physical building does not match the terrain, assuming the counting starts with floor number = 1, the range of the altitude envelope can be defined as follows. JPEG2025518080000009.jpg8125 and JPEG2025518080000010.jpg878 where the boundary thickness is the value of the boundary thickness directly above the terrain (for example, the boundary thickness value 206e shown in Figure 2).

[0047] (For example, as shown for the building model 290b in Figure 2) For a building model constructed using a non - uniform floor - to - floor separation value where the ground floor of the physical building does not match the terrain, assuming the counting starts with floor number = 1, the range of the altitude envelope can be defined as follows. JPEG2025518080000011.jpg12144 and JPEG2025518080000012.jpg11144 where the "target floor" is the maximum floor number considered, the boundary thickness of a given floor' is directly above the separation from the floor to the ceiling, and the boundary thickness' is the value of the boundary thickness directly above the terrain (for example, the boundary thickness value 206e in Figure 2).

[0048] An example 300 of a table of the range of the elevation envelope determined for each floor of a four-story building model according to some embodiments is shown in FIG. 3. The values in Table 300 were generated using Equations 3 and 4, assuming a uniform boundary thickness of 0.3 m and a uniform floor-to-floor distance of 3 m for the building model. In this case, the floor-to-floor distance is equal to the sum of the boundary thickness of 0.3 m and the distance from the floor to the ceiling of 2.7 m, and the base surface of the lowest non-basement floor coincides with the top surface of the terrain. In practice, since the floor-to-floor distance may not be a constant value within a building and may also not be a constant value between different buildings, in some embodiments, it is assumed that there are various possible floor-to-floor distance values that are combined to calculate the total elevation envelope distribution. The total elevation envelope distribution is a series of elevation ranges (the "elevation envelope"), and each elevation range corresponds to an elevation associated with a specific floor of the physical building. Such a "distribution" in this sense is a representation showing how the elevation envelope corresponds to the consecutive floor numbers of the building.

[0049] Due to the additive nature of the floor-to-floor distance values, the higher the floor in the building model, the wider the range of possible elevation values compared to lower floors. An example 400 of a table shown in FIG. 4 shows two distributions, "Distribution 1" and "Distribution 2", which are the ranges of the elevation envelope determined by a computer for a four-story building model according to some embodiments. The minimum elevation envelope value and the maximum elevation envelope value of Distribution 1 in Table 400 were calculated using Equations 3 and 4 with a uniform floor-to-ceiling distance value of 2.2 m and a boundary thickness of 0.3 m (i.e., a floor-to-floor distance value of 2.5 m). The values of Distribution 2 were calculated using Equations 3 and 4 with a uniform floor-to-ceiling distance value of 2.7 m and a boundary thickness of 0.3 m (i.e., a floor-to-floor distance value of 3 m).

[0050] Table 400 shows only two distributions of the height envelope for the building model. In some embodiments, the height envelope distributions are created for a wide range of floor-to-floor distance values. For example, a set of height envelope distributions can be created by generating a height envelope distribution for each floor-to-floor distance value. These distributions start at a minimum expected distance value, such as 2.5 m from floor to ceiling, and increase the floor-to-floor distance value by a uniform value, such as 0.1 m, until they reach a maximum expected floor-to-floor distance value, such as 4.5 m. The floor-to-floor distance values may be increased by uniform values as described, or by non-uniform values. For example, in some embodiments, the floor-to-floor distance values may take a logarithmic spacing, have repeating separations, or be weighted with respect to specific separation values. For example, instead of increasing the floor-to-floor distance value by a uniform value of 0.1 m until it reaches 4.5 m, such as 2.5 m, 2.6 m, 2.7 m, ··· 4.5 m, in some embodiments, the floor-to-floor distance value is increased at a certain rate of increase, such as 2.5 m, 2.6 m, 2.8 m, 3.5 m, ··· 4.5 m. Alternatively, in some embodiments, the floor-to-floor distance values are kept fixed for multiple distributions and a greater weight is given to that separation value in the total height envelope distribution, such as 2.5 m, 2.5 m, 2.5 m, ··· 4.5 m. In some embodiments, as described below, the set of height envelope distributions is then filtered to remove height envelope distributions that result in non-physical (e.g., physically impossible, implausible, or infeasible) floors or building models. In some embodiments, the distributions filtered from the set of height envelope distributions do not contribute to the total height envelope distribution. In other embodiments, the distributions filtered from the set of height envelope distributions do not contribute sufficiently to the total height envelope distribution (e.g., their contributions are weighted and as a result are smaller and contribute to the total height envelope distribution compared to the distributions not filtered from the set of height envelope distributions). Any remaining height envelope distributions are then combined to create the total height envelope distribution.

[0051] In some embodiments, the total height envelope distribution is created for a building model by determining a minimum total height envelope and a maximum total height envelope for each floor of the building model.

[0052] In other embodiments, each height envelope (i.e., Distribution 1, Distribution 2, etc.) is determined as a probability distribution function (uniform distribution, Gaussian / normal distribution, or some other distribution), but when combined to form the total height envelope distribution, this total height envelope distribution may resemble a probability distribution having a peak corresponding to the peak of the weighted combination of height envelopes. For example, referring to FIG. 6 described below, when the separation value of 2.2 m from floor to ceiling of the first height envelope distribution 602 is weighted more than the separation value of 2.7 m from floor to ceiling of the second height envelope distribution, the total height envelope distribution 606 may have a floor distribution weighted towards the lower end (i.e., the range of Floor 1 from 606 is concentrated more on the range from 0 to 2.2 m than on the range from 2.2 to 2.7 m).

[0053] In yet other embodiments, the minimum total height of a floor is the smallest minimum height envelope value of the height envelopes associated with that floor for each height envelope distribution. Similarly, the maximum total height of a floor is the largest maximum height envelope value of the height envelopes associated with that floor for each height envelope distribution.

[0054] An example of the total altitude envelope distribution constructed according to this embodiment is shown in the floor number lookup table 500 of FIG. 5. As shown, in some embodiments, the minimum total altitude envelope value for each floor is the minimum altitude envelope value derived from Distribution 1 or Distribution 2 for that floor, as shown in table 400 of FIG. 4. Similarly, the maximum total altitude envelope value for each floor is the maximum altitude envelope value derived from Distribution 1 or Distribution 2 for that floor, as shown in table 400 of FIG. 4. In other embodiments, the minimum total altitude is within a certain percentage (e.g., 10%) of the minimum altitude envelope value of the altitude envelope associated with that floor number for each altitude envelope distribution. Similarly, in such embodiments, the maximum total altitude is within a certain percentage (e.g., 10%) of the largest maximum altitude envelope value of the altitude envelope associated with that floor number for each altitude envelope distribution. In yet other embodiments, each altitude envelope is determined as a probability distribution function. Such a probability distribution function may concentrate (have a peak) where there is significant overlap across altitude envelope distributions corresponding to different floor separation values, and the total altitude envelope distribution may concentrate in regions where there are multiple overlapping altitude envelope distributions. For example, in FIG. 4, the total altitude envelope distribution may be combined from Distribution 1 and Distribution 2, in which case the total altitude envelope distribution may concentrate between 9 m and 9.7 m, less between 7.5 m and 9 m, and less between 9.7 m and 11.7 m.

[0055] An example of a graphical display 600 of the altitude envelope distribution values of Table 400 and the resulting total altitude envelope distribution values of the floor number lookup table 500 according to some embodiments is shown in FIG. 6. Graph 600 includes a first altitude envelope distribution 602, a second altitude envelope distribution 604, boundary thicknesses 622a - f, a total altitude envelope distribution 606, and a legend 610 of floor numbers including the altitude envelope ranges for floors 1 - 4, with each floor represented by a unique filling pattern. The altitude envelope range for each floor of the first distribution 602 corresponds to the values of distribution 1 shown in Table 400 of FIG. 4. Similarly, the altitude envelope range for each floor of the second distribution 604 corresponds to the values for distribution 2 shown in Table 400 of FIG. 4. The boundary thicknesses 622a - f are set to a fixed value of 0.3 m. As indicated by the dashed line, the minimum and maximum altitude envelope values from the first altitude envelope distribution 602 and the second altitude envelope distribution 604 are selected to create the total altitude envelope distribution 606.

[0056] When disclosed herein, the values of the total altitude envelope distribution 606 are stored in a floor number lookup table for later retrieval. For example, when estimating the location of a mobile device in a physical building, the total altitude envelope distribution associated with that physical building, i.e., the floor number lookup table, may be retrieved. In some embodiments, when the location of the mobile device in a physical building is uncertain, multiple total altitude envelope distributions may be retrieved, each corresponding to a physical building where the mobile device is likely to be present. The retrieved total altitude envelope distributions can then be used to map the estimated altitude of the mobile device for each physical building to floor numbers and / or floor labels.

[0057] For example, based on the values of the floor number lookup table 500 shown in FIG. 5, the estimated altitude of 7 m may be converted or "mapped" to floor number 3. Since there may be overlapping altitude envelope regions, multiple floor numbers can also be selected. For example, an altitude of 8 m may indicate floor number 3 or floor number 4, or floor number 3 (marked with a 75% likelihood) or floor number 4 (marked with a 25% likelihood), where the percentages reflect the reliability of the result. In some embodiments, the reliability of each result is obtained as the distance from the floor number center (centroid). A further separate explanation regarding determining and collating the estimated floor number and its associated reliability is described below.

[0058] In some embodiments, the floor numbers are pre-calculated once along their respective ranges (as detailed below) and then used to populate a database for subsequent lookups, but their values are re-calculated only if the constraints change (e.g., the building is further constructed or demolished, database errors are detected and / or corrected, etc.).

[0059] Another example of the total altitude envelope distribution constructed using a set of altitude envelope distributions according to some embodiments is shown in FIG. 7. In this example, a small boundary thickness is assumed. The ground floor / level is not shown, but the same approach disclosed herein is applicable to buildings having a single or multiple levels below the ground level. FIG. 7 labels a graph 700 showing a set of altitude envelope distributions 702, a total altitude envelope distribution 704 generated using the altitude envelope distributions 702, and a floor number legend 710.

[0060] In the example shown, the altitude envelope distribution 702 includes individual altitude envelope distributions, each corresponding to a different floor separation value ranging from 2.5 m to 4.5 m. In this example, there are no constraints on the altitude envelope distribution described in detail below that are applied to the altitude envelope distribution 702. As a result, the higher the floor of the total altitude envelope distribution 704, the gradually wider the altitude envelope range becomes compared to the lower floors. For example, the floor number 7 ("Floor #7") of the total altitude envelope distribution 704 extends from approximately 17 meters to 32 meters. Due to such a wide span, it is less likely to produce accurate or useful results by generating an estimated floor number from the values derived from the total altitude envelope distribution 704 using the floor number lookup table with the estimated altitude.

[0061] In some examples, specific factual information about a physical building (e.g., derived from a data source such as a building database) may be available. Such information may include the actual floor number of the building, the actual height of the building, etc. However, in many examples, only general and regional information is available (e.g., the maximum building height for a certain area, the maximum number of floors for a certain area, etc.). When there is no information about the physical building, it can be assumed that floor number 1 defined in this specification is at the ground level, which means that the altitude envelope Min of floor number 1 has a ground height value of 0 m that may include any boundary thickness. However, depending on the building form or building type, some reasonable constraints may be assumed and used to generate a more accurate mapping between the estimated altitude of the mobile device and the estimated floor number of the building compared to the case where there are no assumed constraints. Such constraints on the altitude envelope distribution include the minimum building height, the maximum building height, the minimum floor height, the maximum floor height, the minimum number of floors, and the maximum number of floors. By using such constraints, a more compact altitude envelope distribution can be advantageously determined when modeling a physical building.

[0062] Depending on which altitude envelope distribution constraint is selected, four different total distributions with various qualities may be determined respectively. These distributions may be determined considering 1) not using constraints, 2) constraining the number of floors (which may or may not include constraining the number of basement floors), 3) constraining the building height (which may or may not include the depth of the building into the base plane), and 4) using both of the aforementioned constraints. After a set of altitude envelope distribution constraints, if any, is selected, this selected constraint is optionally used when generating the altitude envelope distribution and / or is optionally used to filter out any altitude envelope distribution that violates one or more constraints. In addition to such altitude envelope distribution constraints, the boundary thickness may be estimated or obtained based on measurement data.

[0063] For example, as shown in FIG. 8, the constraint on the altitude envelope distribution regarding the number of floors in a building may be used when generating the altitude envelope distribution, and the constraint on the altitude envelope distribution regarding the maximum building height may also be applied to them after the generation of the altitude envelope distribution. FIG. 8 shows a simplified graphical representation 800 of altitude envelope distribution values and the resulting total altitude envelope distribution values according to some embodiments. The graph 800 includes a first altitude envelope distribution 602 obtained from FIG. 6, a second altitude envelope distribution 604, boundary thicknesses 622a - f, a third altitude envelope distribution 808, boundary thicknesses 822g - i, a total altitude envelope distribution 606, and a legend 810 of floor numbers. The third altitude envelope distribution 808 is generated using a floor-to-floor separation value of 4 m, and the boundary thicknesses 622a - f and 822g - i are set to a fixed value of 0.3 m. Although the ground floor / level is not illustrated, the same approach disclosed herein is applicable to buildings having a single or multiple levels below the ground level.

[0064] As described above, the altitude envelope distribution can be constrained by the minimum or maximum number of floors within a building. The maximum number of floors can be based on general information about the area where the physical building is located. In some embodiments, the process for determining the altitude envelope for each floor of a building stops when the maximum number of floors is reached. In the example shown, the constraints on the altitude envelope distribution with respect to the number of floors (i.e., 4) within the building were generated when generating distributions 602, 604, and 808, and the constraints on the altitude envelope distribution with respect to the maximum building height (i.e., 12 m) were applied after distributions 602, 604, and 808 were generated. As a result of these constraints, the third altitude envelope distribution 808 has a non-physical floor (i.e., floor number 4). The floor number 4 of the third altitude envelope distribution 808 is considered non-physical because this floor number has an altitude envelope that is a floor configuration that is unlikely to exist for the building since it only slightly exceeds 0.5 meters. Since distribution 808 has a non-physical floor, altitude values are determined that are advantageously excluded when determining the total altitude envelope distribution 606. If the building height constraint had not been applied to distributions 602, 604, and 808, the third altitude envelope distribution 808 would also contribute to the total altitude envelope distribution 606.

[0065] In some embodiments, selecting the constraints on the altitude envelope distribution includes a sub-step of validating the initially selected set of constraints. The initially selected set of constraints on the altitude envelope distribution may be validated before being used during the generation of the altitude envelope distribution and / or before applying the constraints to the generated altitude envelope distribution.

[0066] For example, given the form of a region (e.g., a suburb without buildings exceeding a threshold such as 20 m), or given the maximum building height for a region (e.g., there is no building in Chicago larger than the tallest building in that region such as the Willis Tower in Chicago), it may be determined whether the constraints on building height are reasonable. In another example, given the form of a region (e.g., a suburb without buildings exceeding five floors as an example), or given the maximum number of building floors for a region (e.g., there is no building having more floors than the building with the most floors in the region), it may be determined whether the constraints on the number of building floors are reasonable.

[0067] In addition to validating the constraints of the individual altitude envelope distributions of the initial set of constraints, combinations of the constraints of the altitude envelope distributions may also be validated. For example, when specific inter - floor separation values and / or the separation value from floor to ceiling are assumed, some combinations of the constraints may result in a non - physical building model. For example, if an absolute minimum inter - floor separation value of 2 m (which is reasonable assuming a constraint above human height) is assumed, the combination of the constraint of the first altitude envelope distribution requiring a building to have 8 floors and the constraint of the second altitude envelope distribution requiring a building height of 10 m will result in a non - physical building model because each floor will be only 1.25 m high. In another example, if a maximum inter - floor separation of 5 m is assumed, a 100 - m building with 10 floors will be non - physical because each resulting floor will be only half the height suggested by the building height.

[0068] Multiple options for handling the constraints of the altitude envelope distribution for specific buildings that fail validation ("non - physical constraints") individually or in combination are disclosed herein. Each of such options may be implemented and included in combination with or separately from the following. i) Exclusion of building height constraints. This can be carried out when it is determined that the building height constraints are incorrect or unlikely for the area where the building is located (e.g., a suburban house with a height of 100m is unlikely, a supertall building taller than the tallest supertall building in the world is unlikely, etc.). ii) Exclusion of maximum floor number constraints. This can be used when it is determined that the building floor number constraints are incorrect or unlikely for the area where the building is located (e.g., a suburban house with 10 floors is unlikely, a supertall building with more than 400 floors is unlikely). iii) Exclusion of both floor number constraints and building height constraints. This can be used in cases when it is determined that both the floor number constraints and the building height constraints are incorrect or unlikely for the area where the building is located. iv) Flagging the building for offline authentication and warning the user. Offline human authentication has the advantage of further strengthening and validating the building dataset. And / or, v) Warning the user and / or doing nothing. This has the advantage of minimizing the resources used.

[0069] As an example of either the above option (i) or a situation where only one of the altitude envelope distribution constraints is initially selected, FIG. 9 shows, according to some embodiments, an example of the total altitude envelope distribution constructed using only the maximum floor number constraint within the building (e.g., because the building height constraint has been excluded or is unavailable). In this example, a small boundary thickness is assumed, and the lowest altitude of the altitude envelope for floor number 1 coincides with a building height of 0m (i.e., the floors are stacked from bottom to top). FIG. 9 includes a graph 900 showing a set 902 of altitude envelope distributions, a total altitude envelope distribution 904 generated using the altitude envelope distribution 902, and a legend 910 for floor numbers. The basement / level is not illustrated, but the same approach disclosed herein is applicable to buildings having a single or multiple levels below ground level.

[0070] In the example shown, the altitude envelope distribution 902 includes individual altitude envelope distributions each corresponding to different inter - floor spacing values ranging from 2.5 m to 4.5 m. The distribution 902 was constructed given the constraint that the modeled building is at most 8 stories.

[0071] As an example of either option (ii) above and the situation where only one constraint of the altitude envelope distribution was initially selected, FIG. 10 shows, according to some embodiments, an example of the total altitude envelope distribution constructed using only the constraint of the maximum building height (e.g., because the constraint on the maximum number of floors was excluded or the maximum number of floors was not available). Similar to the example shown in FIG. 9, in this example, a small boundary thickness is assumed, and the lowest altitude of the altitude envelope for floor number 1 coincides with a building height of 0 m (i.e., the floors are stacked from bottom to top). FIG. 10 includes a graph 1000 showing a set 1002 of altitude envelope distributions, a total altitude envelope distribution 1004 generated using the altitude envelope distribution 1002, and a legend 1010 of floor numbers. Although the ground floor / level is not illustrated, the same approach disclosed herein is applicable to buildings having a single or multiple levels below the ground level.

[0072] The distributions 1002 were initially constructed without the constraint of the maximum number of floors, and each distribution corresponds to different inter - floor spacing values ranging from 2.5 m to 4.5 m. However, after applying the constraint of the maximum building height of 20 m, a subset of the distributions 1002 shown as a dashed - line rectangle was filtered out from the set of distributions 1002 because it created non - physical floors (not shown) at the upper part of the building. For example, the top floor of a building with a separation from floor to ceiling of less than 2.5 m is a non - physical floor. Therefore, the subset of the distributions 1002 represented by the dashed line was not used to generate the total altitude envelope distribution 1004.

[0073] As an alternative to floors stacked by a computer from bottom to top, the floors may be stacked by a computer from the rooftop of the building downward. In such an embodiment, a distribution having a floor separation that results in non-physical floors in the lower part of the building (e.g., a floor-to-floor separation of less than 2.5 m for the lower floors) may, in some embodiments, be excluded as shown in FIG. 11. In some embodiments, for a building having a basement level, a distribution stacked by a computer from the rooftop of the building downward may extend into the ground and may not be excluded based on non-physical constraints.

[0074] Similar to that shown in FIG. 10, in this example, a small boundary thickness is assumed. However, in FIG. 11, the highest altitude of the altitude envelope for floor number 8 coincides with the building height of 20 m (i.e., the floors are stacked by a computer from top to bottom). FIG. 11 includes a graph 1100 showing a set 1102 of altitude envelope distributions, a total altitude envelope distribution 1104 generated using the altitude envelope distribution 1102, and a legend 1110 of floor numbers. Although the basement level / floor is not illustrated, the same approach disclosed herein is applicable to buildings having a single or multiple levels below the ground level.

[0075] The distribution 1102 was initially constructed without a maximum number of floors constraint, each corresponding to a different floor-to-floor separation value ranging from 2.5 m to 4.5 m. However, after applying the constraint of a maximum building height of 20 m, a subset of the distribution 1102 illustrated as a rectangle with a dashed line was filtered out from the set of distributions 1102 because it resulted in non-physical floors (not shown) in the lower part of the building (e.g., the bottom floor had a separation from floor to ceiling of less than 2.5 m). Therefore, the subset of the distribution 1102 represented by the dashed line was not used to generate the total altitude envelope distribution 1104.

[0076] As described above, in some embodiments, the constraints of two altitude envelope distributions may be combined to reduce the number of possible altitude envelope distributions beyond the individual constraints. An example of the total altitude envelope distribution constructed using a set of altitude envelope distributions when the constraints of the maximum floor number and the maximum building height according to some embodiments are applied is shown in FIG. 12. Similar to that shown in FIG. 10, in this example, a small boundary thickness is assumed, and the lowest altitude of the altitude envelope for floor number 1 coincides with a building height of 0 m (i.e., the floors are stacked by computer from bottom to top). FIG. 12 includes a graph 1200 showing a set 1202 of altitude envelope distributions, a total altitude envelope distribution 1204 generated using the altitude envelope distribution 1202, and a legend 1210 of floor numbers. Although the ground floor / level is not illustrated, the same approach disclosed herein is applicable to buildings having a single or multiple levels below the ground level.

[0077] Distribution 1202 was initially constructed using the maximum order constraint (i.e., up to 6th order), each corresponding to a different inter - floor separation value ranging from 2.5m to 4.5m. However, after applying the constraint of a maximum building height of 20m, a subset of distribution 1202, illustrated as a dashed - lined rectangle, was filtered out from the set of distribution 1202 because it created non - physical floors (not shown) at the upper part of the building (e.g., the top floor had a separation from floor to ceiling of less than 2.5m). Therefore, the subset of distribution 1202 represented by the dashed line was not used to generate the overall height envelope distribution 1204. As shown, the combination of the two height envelope distribution constraints (maximum floor number and maximum building height) results in significantly less overlap between the height envelopes of the overall height envelope distribution 1204 compared to the overall height envelope distribution 1104 of FIG. 11, the overall height envelope distribution 1004 of FIG. 10, and especially the overall height envelope distribution 904 of FIG. 9. Therefore, a building floor number lookup table using the overall height envelope distribution 1204 will be more accurate than a building floor lookup table using the overall height envelope distributions 1104, 1004, or 904. Further, a building floor number lookup table using the overall height envelope distribution 1204 can also advantageously be generated without performing a costly survey of the associated physical building while still providing an accurate estimated floor number for that building based on the user's estimated height.

[0078] As considered above, or for levels stacked by a computer from bottom to top, the levels may be stacked by a computer from the rooftop of the building downward, and floor separation that results in non-physical levels at the lower part of the building (for example, floor separation less than 2.5 m for the lower levels) may be excluded. An example of the overall altitude envelope distribution constructed using a set of altitude envelope distributions when the constraints of the maximum floor number and the maximum building height are applied according to some embodiments is shown in FIG. 13. Similar to that shown in FIG. 11, in this example, a small boundary thickness is assumed, and the maximum altitude of the altitude envelope for floor number 6 coincides with the maximum building height of 20 m (that is, the floors are stacked from top to bottom). FIG. 13 includes a graph 1300 showing a set of altitude envelope distributions 1302, an overall altitude envelope distribution 1304 generated using the altitude envelope distributions 1302, and a legend 1310 of floor numbers. Although the ground floor / level is not illustrated, the same approach disclosed herein is applicable to buildings having a single or multiple levels below the ground level.

[0079] Distribution 1302 was initially constructed using the maximum order constraint (i.e., up to order 6), with each distribution corresponding to a different inter-story separation value ranging from 2.5 m to 4.5 m. However, after applying the constraint of a maximum building height of 20 m, a subset of distribution 1302, illustrated as a rectangle with a dashed line, was filtered from the set of distribution 1302 because it created non-physical floors (not shown) at the lower part of the building (e.g., the bottom floor had a separation from floor to ceiling of less than 2.5 m). Therefore, the subset of distribution 1302 represented by the dashed line was not used to generate the total height envelope distribution 1304. As shown, the combination of the two height envelope distribution constraints (maximum floor number and maximum building height) advantageously results in much less overlap between the height envelopes of the total height envelope distribution 1304 compared to the total height envelope distribution 1104 of FIG. 11, the total height envelope distribution 1004 of FIG. 10, and particularly the total height envelope distribution 904 of FIG. 9. Therefore, the building floor number lookup table using the total height envelope distribution 1304 will be more accurate than the building floor lookup tables using the total height envelope distributions 1104, 1004, or 904.

[0080] In some embodiments, the overall altitude envelope distribution may include a combination of altitude envelope distributions generated using different techniques. For example, the lower portion of the overall altitude envelope distribution may include an altitude envelope distribution formed from bottom to top (as shown and described with reference to, for example, FIG. 12), and the upper portion of the overall altitude envelope distribution may include an altitude envelope distribution formed from top to bottom (as further shown and described with reference to, for example, FIG. 13) to further reduce the overlap of altitude envelopes. For example, the upper half of the overall envelope distribution may include the upper half of the overall envelope distribution 1304 corresponding to floor numbers 4 - 6, and the lower half of the altitude envelope distribution may include the lower half of the overall altitude distribution 1204 corresponding to floor numbers 1 - 3. Further, if it is estimated or determined that the building has an odd number of floors (as an input constraint, determined by other constraints, or using data read from a building database), the middle floor of the building may be a combination of 1204 and 1304 at the middle floor by taking the minimum from 1204 and the maximum from 1304, or by taking the maximum from 1304 and the minimum from 1204, or by some other combination.

[0081] A simplified example of part of process 1400 for determining the overall altitude distribution according to some embodiments is shown in FIG. 14. The specific steps, order of steps, and combination of steps are shown for illustrative and explanatory purposes only. Other embodiments may perform different specific steps, order of steps, and combination of steps to achieve similar functions or results. In some embodiments, each step of process 1400 is performed at a server (e.g., server 130 of FIG. 1) and / or a mobile device (e.g., near mobile devices 120a - e of FIG. 1). A process for generating a mapping from an estimated floor number to an estimated floor label for a building may be used independently of other processes disclosed herein.

[0082] In step 1402, a set of height envelope distribution constraints is selected for a physical building for which a floor number lookup table (such as that shown in FIG. 5, for example) is constructed. As described above, such height envelope distribution constraints include a minimum building height, a maximum building height, a minimum floor height, a maximum floor height, a minimum number of floors, and a maximum number of floors. In some embodiments, the set of height envelope distribution constraints includes one or more such constraints. In other embodiments, no constraints are used and the set of constraints is an empty set. In some embodiments, the set of height envelope distribution constraints is selected by or using server 130 based on settings provided by the user (e.g., configuration settings), availability of constraints from a database, quality of data within a relevant database (e.g., a building and / or terrain database), or provided design or tolerance criteria. In other embodiments, the set of height envelope distribution constraints is automatically selected by or using server 130 based on an iterative process that tries various constraints to produce an optimized result (e.g., a total height envelope distribution with minimal overlap between height envelopes).

[0083] As described above, in some embodiments, step 1402 includes a sub-step of validating an initially selected set of constraints. For example, the initially selected set of constraints may be validated using general information regarding the building form of the region in which the physical building is located. As described above, such validation includes determining, given the building form of the region in which the physical building is located, whether any of the constraints are likely to be absent.

[0084] In step 1404, an initial set of altitude envelope distributions is generated, optionally using a first set of constraints on two or more selected altitude envelope distributions. In the first embodiment, each altitude distribution includes one or more stacked altitude envelopes, each altitude envelope corresponding to a building floor number of a physical building and separated from another altitude envelope or from an initial point by a floor-to-floor separation value or by the sum of a separation value from floor to ceiling and a boundary thickness value. For the first embodiment, each altitude envelope distribution within the set is determined using different floor-to-floor separation values or separation values from floor to ceiling ranging from a minimum value (e.g., 2.5 m) to a maximum value (e.g., 4.5 m). For example, in FIG. 8, the set of altitude envelope distributions included distributions 602, 604, and 808, where distribution 602 corresponded to a floor-to-floor separation value of 2.5 m, distribution 604 corresponded to a floor-to-floor separation value of 3 m, and distribution 808 corresponded to a floor-to-floor separation value of 4 m. In the example shown in FIG. 8, the first constraint on the altitude envelope distribution, i.e., the one selected in step 1402, was a constraint of a maximum number of floors equal to four floors. Thus, each of distributions 602, 604, and 808 was constructed to include only a maximum of four floors.

[0085] In the second embodiment, an initial set of altitude envelope distributions may be determined by stacking altitude envelopes with a fixed floor-to-floor separation value, such as 3 m, until the height of the building is filled or exceeded. This approach is simple but may be particularly sensitive to error accumulation, especially at higher floors.

[0086] In a third embodiment, an initial set of height envelope distributions for a building may be determined by dividing the height of the building by the number of internal floors. However, both values are known (e.g., from a building database). For example, an 8m building with two floors will likely have a ground floor with a height envelope extending from 0m to 4m from the bottom of the building and an upper floor with a height envelope extending from 4 to 8m. However, such calculated height envelopes will have clearly delineated boundaries that do not overlap with each other and may not correctly characterize users near the boundary values. In a given example, a user height of 4.001m will be assigned to the upper floor of the building (with a height envelope extending from 4 to 8m) without reflecting that the user is 0.001m from the boundary of the ground floor.

[0087] In contrast to the latter two embodiments, the first embodiment disclosed herein advantageously enables assuming a wide range of floor separation values and filtering non-physical floor separation values (i.e., floors that are so short that they would not likely be based on human height) from the height envelope distribution. Further, the first embodiment disclosed herein advantageously enables non-uniform floor separation values. In contrast to the latter two embodiments, the first embodiment disclosed herein advantageously enables generating a buffer of floor ranges (i.e., floor ranges that overlap), which can be used to determine when a user's height can be reliably assigned to one or more adjacent floors in addition to the determined floor.

[0088] Referring to the above example, a range of floors including overlap (e.g., the ground floor of a building extending from 0 to 4.25 m in height and the upper floors of the building extending from 3.75 to 8.25 m in height) enhances the estimation of floor numbers advantageously compared to a simple approach without overlap. For example, a user's height of 4.001 m will be mapped to potentially being on the ground floor or upper floors of the building, as opposed to a simple approach that would only assign the user's position to the upper floor. If the user's height of 4.001 m is full of noise and subject to fluctuations of a few millimeters, the user's floor number will jump between the ground floor and upper floors of the building that identify both overlapping floors, contrary to some embodiments disclosed herein. Further, if the user's height also has a determined reliability / uncertainty of 4.5 m + / - 0.4 m, the overlap between the range of the user's height from 4.1 m to 4.9 m may indicate the ground floor or upper floors. This is in contrast to a simple approach that would still only indicate the upper floor, resulting in a noisy floor number estimation and a poor user experience.

[0089] Returning to FIG. 14 and noting that in step 1406, constraints of a second one or more selected altitude envelope distributions are applied to the set of altitude envelope distributions to filter the set of altitude envelope distributions. In the example shown in FIG. 8, the second altitude envelope distribution constraint, i.e., the one selected in step 1402, is a constraint of a maximum building height equal to 20 m. In the example shown in FIG. 8, since the constraint of the maximum building height results in a non-physical building for distribution 808 as discussed above, distribution 808 is filtered from the set of total altitude envelope distributions and will not be used hereafter in the generation of the total altitude envelope distribution 606.

[0090] In step 1408, the remaining set of altitude envelope distributions is used to determine the total altitude envelope distribution. In the situation where the constraints of the second one or more selected altitude envelope distributions were not applied to the set of altitude envelope distributions in step 1406, the remaining set of altitude envelope distributions is the same as the initial set of altitude envelope distributions generated in step 1404. Similarly, in a scenario without selected constraints, or in the case where there were no initial constraints that passed validation, the remaining set of altitude envelope distributions is the same as the initial set of altitude envelope distributions determined in step 1404.

[0091] In step 1410, an absolute total altitude envelope distribution is generated using the total altitude envelope distribution. Compared to the altitude values of the total altitude envelope distribution with respect to the terrain, the altitude values of the absolute altitude envelope distribution are absolute altitude values with respect to a reference coordinate system, such as the ellipsoidal height, which is the height above the Earth ellipsoid. To generate the absolute total altitude envelope distribution, when the total altitude envelope distribution of the building is estimated, it is added to a reference altitude value such as the altitude value of the ellipsoidal height of the lowest floor. The reference altitude value of the lowest floor can be determined in various ways including the following. a) Querying the terrain database within the building footprint and averaging the results across the building footprint. Alternatively, the minimum or maximum terrain or some other statistic may be used. And / or, b) Querying the terrain database outside the building footprint (at a certain buffer distance such as 10 m away) and averaging the results. This can be beneficial for terrain databases where the removal of the building may not be adequately handled during modeling. Alternatively, the minimum or maximum terrain or some other statistic may be used. For buildings on slopes and at the lowest floor, the entrance is located above the lowest part of the terrain, and the minimum terrain will likely indicate the altitude of the base surface of the lowest floor. And / or, c) Querying the building database and, if possible, directly reading out the reference altitude value of the lowest floor.

[0092] In step 1412, the absolute total altitude envelope distribution and optionally the (relative) total altitude envelope distribution are saved for immediate or later use. In some embodiments, the absolute total altitude envelope distribution is stored in a database as a floor number lookup table associated with a physical building (e.g., by address, building name or indicator, and / or coordinates, or as part of a larger data structure). Further, in step 1414, a mapping of the estimated floor numbers to estimated floor labels is optionally generated. Details of step 1414 are described below with reference to FIG. 21.

[0093] As described below, a floor number lookup table can be used, for example, by a server and / or a mobile device to estimate on which floor of a physical building a mobile device is located by using the estimated altitude and the absolute total altitude envelope distribution of the mobile device. Therefore, if the absolute floor number distribution of a building is known (i.e., generated or read from storage), altitude data (e.g., from a mobile device) may be mapped to floor numbers. The processes and techniques disclosed herein for: i) determining the total altitude envelope distribution, ii) using the altitude envelope distribution to map the estimated altitude (and optionally altitude uncertainty / reliability) of a mobile device to a floor number, and iii) reporting the mapped floor number to an endpoint can be used either together or independently of each other. That is, the total altitude envelope distribution determined using the techniques and processes disclosed herein can be used by an alternative process for mapping the estimated altitude (and optionally altitude uncertainty / reliability) of a mobile device to a floor number using the altitude envelope distribution (i.e., when compared to that disclosed herein), and / or by an alternative process for reporting the mapped floor number to an endpoint. Similarly, the techniques and processes for mapping the estimated altitude (and optionally altitude uncertainty / reliability) of a mobile device to a floor number using an altitude envelope distribution as disclosed herein can be used by an alternative process for determining the total envelope distribution, and / or by an alternative process for reporting the mapped floor number to an endpoint. Further, the techniques and processes for reporting the mapped floor number to an endpoint as disclosed herein can be used by an alternative process for determining the total altitude envelope distribution using the altitude envelope distribution, and / or by an alternative process for mapping the estimated altitude of a mobile device to a floor number.

[0094] FIG. 15 includes a simplified example of a portion of process 1500 that can be used as a first embodiment of step 1412 of FIG. 14 for estimating a building floor number based on the estimated altitude of a mobile device using an absolute total altitude envelope distribution. The specific steps, order of steps, and combinations of steps are shown for illustrative and explanatory purposes only. Other embodiments can implement different specific steps, order of steps, and combinations of steps to achieve similar functions or results. In some embodiments, each step of process 1500 is executed on a server (e.g., server 130 of FIG. 1) and / or a mobile device. Process 1500 for estimating a building floor number based on the estimated altitude (and optionally altitude uncertainty / reliability) of a mobile device using an absolute total altitude envelope distribution can be used in conjunction with or independently of other processes disclosed herein.

[0095] The steps of process 1500 are described with reference to exemplary graph 1600 of FIG. 16, which includes absolute altitude envelope distribution 1606, legend 1610, and estimated altitudes 1630a - b, according to some embodiments. In some scenarios, as discussed below, it may be uncertain which building the mobile device is in. In such scenarios, in some embodiments, the steps of process 1500 are performed for each building in a list of buildings where the mobile device may be located. In other embodiments, if the distributions of buildings are similar, their distributions may be combined.

[0096] In step 1502, the estimated altitude of the mobile device is identified (e.g., either 1630a or 1630b). As described above, the estimated altitude of the mobile device can be determined based on the measurement of atmospheric pressure performed by the barometric pressure sensor of the mobile device and / or by using the positioning signals received by the mobile device. In some situations, the estimated altitude may be the estimated altitude received from the server by the mobile device. In other situations, the estimated altitude may be read from the server or another source. In some embodiments, the entire altitude estimation process may be performed on the mobile device. In step 1504, for each floor number of the absolute altitude envelope distribution, if the estimated altitude is within the altitude envelope corresponding to that floor number, that floor number is added to the list of estimated floor numbers. Referring to FIG. 16, if the estimated altitude from step 1502 is estimated altitude 1630a, the list of estimated floor numbers will only include floor number 4. However, if the estimated altitude from step 1502 is estimated altitude 1630b, since the estimated altitude 1630b exists within the altitude envelope corresponding to floor number 4 and within the altitude envelope corresponding to floor number 3 based on their overlap, the list of estimated floor numbers will include both floor number 4 and floor number 3. In step 1506, the list of estimated floor numbers is returned to an endpoint, such as the user of the mobile device, the first responder, the computer system, the server, and / or the device that initiated process 1500.

[0097] FIG. 17 includes a simplified example of a portion of process 1700 that can be used as a second embodiment of step 1412 of FIG. 14 for estimating the floor number of a building based on an estimated altitude using an absolute total altitude envelope distribution. The specific steps, the order of the steps, and the combination of the steps are shown for illustrative and explanatory purposes only. Other embodiments can implement different specific steps, the order of the steps, and the combination of the steps to achieve similar functions or results. In some embodiments, each step of process 1700 is executed on a server (e.g., server 130 of FIG. 1) and / or a mobile device. Process 1700 for estimating the floor number of a building based on the estimated altitude (and optionally altitude uncertainty / reliability) of a mobile device using an absolute total altitude envelope distribution can be used in conjunction with or independently of other processes disclosed herein.

[0098] In some scenarios, as discussed below, it may be uncertain which building the mobile device is in. In such scenarios, in some embodiments, the steps of process 1700 are performed for each building in a list of buildings where the mobile device may be located.

[0099] The steps of process 1700 are described with reference to exemplary graph 1800 of FIG. 18, which includes absolute altitude envelope distribution 1806, legend 1810, estimated altitude 1830, first vertical distance measure 1840, second vertical distance measure 1842, and vertical center tendencies 1852a - d.

[0100] In step 1702, the estimated altitude of the mobile device is identified (e.g., 1830). In some situations, the estimated altitude can be the estimated altitude determined using a mobile device inside a building corresponding to the absolute altitude envelope distribution. In other situations, the estimated altitude may be an altitude value read from a server or another source.

[0101] In step 1704, for each floor number of the absolute altitude envelope distribution (e.g., 1806), the vertical center tendency (e.g., 1852a - d) of the altitude envelope corresponding to that floor is calculated. In some embodiments, each vertical center tendency is the average value or median value of the corresponding altitude envelope. For example, in some embodiments, the vertical center tendency of the altitude envelope can be calculated as follows. JPEG2025518080000013.jpg1182

[0102] In step 1706, the amount of distance between the estimated altitude and the vertical center tendency is calculated for each altitude envelope of the absolute altitude envelope distribution. The amount of distance (e.g., 1840, 1842) is calculated for the altitude envelope by determining the absolute value of the difference between the estimated altitude value (e.g., 1830) and the center tendency (e.g., 1852d, 1852c) of that altitude envelope.

[0103] In step 1708, for each floor number of the absolute altitude envelope distribution, based on the amount of distance of the altitude envelope of that floor number, that floor number is conditionally added to the list of estimated floor numbers.

[0104] Conditionally adding a floor number to a list of estimated floor numbers involves adding the floor number to the list of estimated floor numbers based on one or more specified conditions. If the condition is met, the floor number is added to the list of estimated floor numbers. If the condition is not met, the floor number is not added to the list of estimated floor numbers. For example, in some embodiments, if the distance amount is the smallest distance amount compared to the distance amounts corresponding to other floor numbers, the floor number is added to the list of estimated floor numbers. In such embodiments, all other floor numbers are excluded from the list of estimated floor numbers. In other embodiments, if the corresponding distance amount of the floor number is less than a predetermined threshold (e.g., 5 meters), the floor number is added to the list of estimated floor numbers. In such embodiments, all other floor numbers are excluded from the list of estimated floor numbers. In still other embodiments, all floor numbers are added to the list of estimated floor numbers, and the list of estimated floor numbers is ordered by the distance amount along with the reliability mapped from the distance amount. In each of these embodiments, the list of estimated floor numbers may also include the value of the distance amount corresponding to each of the estimated floor numbers.

[0105] For example, referring to FIG. 18, if the estimated altitude from step 1702 is estimated altitude 1830, since distance amount 1840 is smaller than distance amount 1842, the list of estimated floor numbers may include only floor number 4. In other embodiments, if distance amount 1840 is less than the threshold and distance amount 1842 is greater than the threshold, the list of estimated floor numbers may include only floor number 4. In still other embodiments, the list of estimated floor numbers may include all floor numbers and be ordered from the smallest distance amount to the largest distance amount (i.e., floor number 4, floor number 3, floor number 2, and floor number 1). At step 1710, a list of estimated floor numbers and / or floor labels is returned to an endpoint (e.g., a server, a mobile device, and / or the device that initiated process 1700).

[0106] FIG. 19 includes a simplified example of a portion of process 1900 that can be used as a third embodiment of step 1412 of FIG. 14 for estimating the floor number of a building based on an estimated altitude using an absolute total altitude envelope distribution. The specific steps, the order of the steps, and the combination of the steps are shown for illustrative and explanatory purposes only. Other embodiments can implement different specific steps, the order of the steps, and the combination of the steps to achieve similar functions or results. In some embodiments, each step of process 1900 is executed on a server (e.g., server 130 of FIG. 1) and / or a mobile device. Process 1900 for estimating the floor number of a building based on the estimated altitude (and optionally altitude uncertainty / reliability) of a mobile device using an absolute total altitude envelope distribution can be used together with or independently of other processes disclosed herein.

[0107] In some scenarios, as discussed below, it may be uncertain which building the mobile device is in. In such scenarios, in some embodiments, the steps of process 1900 are performed for each building in a list of buildings where the mobile device may be located. In some embodiments, if the distributions of the buildings are similar, those distributions may be combined.

[0108] The steps of process 1900 are described with reference to exemplary graph 2000 of FIG. 20, which includes absolute altitude envelope distribution 2006, legend 2010, first calculated altitude duplicate value 2040, second calculated altitude duplicate value 2042, estimated altitude 2030, and confidence interval 2031 according to some embodiments.

[0109] In step 1902, the estimated altitude data of the mobile device is identified (e.g., 2030). In some situations, the estimated altitude data includes the estimated altitude and the uncertainty / reliability interval corresponding to the estimated altitude. This interval is usually represented as X+ / -Ym, but may be asymmetric (+Ym, -Zm). As shown in FIG. 20, the estimated altitude data 2030 includes the estimated altitude 2030 displayed as a point and the corresponding confidence interval 2031 displayed as a whisker centered on the point. In some embodiments, the estimated altitude data may be received from the mobile device. In other situations, the estimated altitude data may be read from a server or another source.

[0110] The lower limit of the altitude data is calculated as follows. In the formula, the confidence value of the estimated altitude is half of the confidence interval of the estimated altitude when the confidence interval is symmetric, or a part of the confidence interval of the estimated altitude when the confidence interval is asymmetric. JPEG2025518080000014.jpg892 The upper limit of the altitude data is calculated as follows. JPEG2025518080000015.jpg791

[0111] In some embodiments, the confidence interval, or the confidence value of the estimated altitude, is determined or calculated as described in U.S. Patent No. 10,655,961, issued May 19, 2020, and / or U.S. Patent Application No. 17 / 447,027, filed September 7, 2021, which are both incorporated herein by reference in their entirety. In other embodiments, the confidence interval, or the confidence value of the estimated altitude, has already been calculated by another process. In still other embodiments, the confidence interval, or the estimated altitude confidence value, is a fixed value.

[0112] In step 1904, for each level number of the absolute altitude envelope distribution, an altitude overlap value between the altitude data and the altitude envelope corresponding to that level is calculated. In some embodiments, the altitude data described herein includes an estimated altitude value and optionally includes an altitude uncertainty / reliability value associated with the estimated altitude. The altitude overlap value for a given level may include a vertical span (e.g., 5 m) or an overlap percentage (e.g., 10%) where the altitude range between the lower limit of Equation 12 and the upper limit of Equation 13 overlaps the altitude range between the minimum value of the altitude envelope for that level and the maximum value of the altitude envelope. For example, in FIG. 20, the confidence interval 2031 overlaps the altitude envelope for level number 4 by the first altitude overlap value 2040. Similarly, the confidence interval 2031 overlaps the altitude envelope for level number 3 by the second altitude overlap value 2042.

[0113] In step 1906, for each floor number of the absolute altitude envelope distribution, based on the duplicate value calculated for that floor number, that floor number is added to the list of estimated floor numbers. In some embodiments, if the altitude duplicate value calculated for a floor is the maximum calculated altitude duplicate value compared to the calculated altitude duplicate values corresponding to other floor numbers, that floor number is added to the list of estimated floor numbers. In such embodiments, all other floor numbers are excluded from the list of estimated floor numbers. In other embodiments, if the corresponding calculated altitude duplicate value of a floor number is greater than a given threshold percentage (e.g., 20%) or distance range (e.g., 3 m) when measured relative to either the altitude envelope range or the estimated altitude range of the mobile device, that floor number is added to the list of estimated floor numbers. In such embodiments, all other floor numbers are excluded from the list of estimated floor numbers. In yet other embodiments, all floor numbers are added to the list of estimated floor numbers, and the list of estimated floor numbers is sorted by each of its calculated altitude duplicate values. In each of these embodiments, the list of estimated floor numbers may also include the relevant confidence intervals of the estimated altitude data. Further, in each of these embodiments, the list of estimated floor numbers may include the relevant confidence intervals or uncertainties for each of the floor numbers. In step 1908, the list of estimated floor numbers is returned to an endpoint (e.g., a server, a mobile device, and / or the device that initiated process 1900).

[0114] Since the user's experience may only match the floor label (i.e., what is observed) and not the true floor number, it may be necessary or desirable to convert the estimated floor number to the corresponding estimated floor label. In some embodiments, a list of rules regarding the deletion and addition of floor labels is first edited. Such a list can be specific to geography, morphology, or building type. For example, the list of rules can specify that there is no "Floor 13" in all buildings within the geopence of downtown San Francisco. In another example, the list can specify that buildings with a postal code in Montreal have "Ground Floor" as the lower floor and that the first floor is directly above the ground floor. In another example, the list of rules can specify that all floor labels containing "4" are absent in buildings in Beijing that are over 10 meters tall. In another example, the list or rules can combine multiple rules. Such a list of rules can be expanded by adding specific exceptions, such as specific buildings that follow different patterns or have a predefined floor label scheme.

[0115] In some embodiments, different floors within a building can have a mixed use. For example, the building can include bedrooms and corridors on the north side and attic space on the south side. In such cases, the user's 2D position becomes important when determining the floor label.

[0116] Figure 21 shows an example of an embodiment of step 1414 shown in FIG. 14 that optionally generates a mapping of estimated floor numbers to estimated floor labels for a building, which is part of process 2100. The specific steps, the order of the steps, and the combination of the steps are shown for illustrative and explanatory purposes only. Other embodiments may implement different specific steps, order of steps, and combination of steps to achieve similar functions or results. In some embodiments, each step of process 2100 is executed on a server (e.g., server 130 of FIG. 1) and / or a mobile device. The process for generating a mapping of estimated floor numbers to estimated floor labels for a building may be used together with or independently of other processes disclosed herein.

[0117] In step 2102, each estimated floor number of the absolute total height distribution of the building is mapped to an estimated floor label of the same name (e.g., by a server). For example, floor number 1 is mapped to "Floor Number 1" or "First Floor", floor number 2 is mapped to "Floor Number 2" or "Second Floor", and so on. The terms "map", "mapped", "mapping", and "translate" in this context mean to logically, descriptively, and / or programmatically associate one or more items with one or more other items (a database, a dataset, or other data object).

[0118] In step 2104, floor labels are flagged or excluded from the mapping based on regional and / or cultural criteria. For example, "13th floor", "4th floor", "39th floor" may be considered "unlucky" in some cultures. In some embodiments, step 2104 includes compiling, identifying, or reading (e.g., from a server) a list of rules that are specific to the region or include the context between buildings. Such rules are similar to those described above. For example, there may be no "13th floor" in buildings in San Francisco. Then, based on those rules, the floor labels are excluded from the mapping.

[0119] In step 2106, it is determined whether there are a sufficient number of floor labels (i.e., whether there is at least one available floor label for each floor number). If it is determined that there are a sufficient number of floor labels, the flow proceeds to step 2108.

[0120] In step 2108, new floor labels are added to the mapping (e.g., by a server) at appropriate locations (such as "lobby", "second floor", "observation deck"). In some embodiments, step 2108 includes sorting, identifying, or reading a list of rules (e.g., from a server) that are specific to the region or include the context between buildings. Such rules are similar to those described above. For example, a building in Montreal may have a "first floor". Then, based on those rules, floor labels are added to the mapping.

[0121] Next, in step 2110, the estimated floor numbers are matched to the estimated floor labels, and excess estimated floor labels are discarded (e.g., by a server). The fact that there are an excessive number of floor labels is the opposite problem of the insufficient number of floor labels determined in step 2106. For example, if the estimated floor label "13th floor" is excluded from the mapping, the estimated floor number 13 will be matched to the floor label "14th floor".

[0122] Alternatively, if the building database includes all possible dwelling unit numbers, the format of such dwelling unit numbers can be interpreted as possible floor labels. For example, if an apartment building includes apartment numbers 101, 102, 201, and 202, the floor labels can be established as floor label 1 and floor label 2 for such an apartment building using the first digit of the apartment numbers. Or, if additional sources of floor labels are available (such as a list of elevator buttons obtained from all elevator banks in the building or a list of floors obtained from the building drawings), such information is used by the server to establish the floor labels.

[0123] Since each geographical area can have hundreds of physical buildings, and each building can have many possible permutations of floor labels, and in addition to considering a large dataset that may include known apartment numbers, elevator button information, etc., a large dataset of regional and cultural rules is also considered, process 2100 is advantageously executed by one or more servers that can access and operate on the large dataset.

[0124] If it is determined in step 2106 that the amount of floor labels is less than the number of floor numbers, the flow proceeds to step 2112, where the number of floor labels is increased by one or more. The flow then returns to step 2102 to be reprocessed using a larger buffer of possible floor labels.

[0125] FIG. 22 shows a part of process 2200, which is an exemplary embodiment of step 1412 shown in FIG. 14, according to some embodiments. The specific steps, the order of the steps, and the combination of the steps are shown for illustrative and explanatory purposes only. Other embodiments can implement different specific steps, the order of the steps, and the combination of the steps to achieve similar functions or results. In some embodiments, each step of process 2200 is executed on a server (e.g., server 130 of FIG. 1) and / or a mobile device.

[0126] Part of process 2200 is described with reference to graph 2300 shown in FIG. 23 according to some embodiments. Graph 2300 provides a simplified overhead view of the operating environment, including the centroid 2302 of the estimated position of the mobile device, the reliability 2304 of the estimated position forming the radius of the 2D (two-dimensional) confidence region 2306, the first building polygon 2308, the second building polygon 2310, and the third building polygon 2312. The building polygons are at least two-dimensional overhead contours of physical buildings. As is known in the art, building polygons can store and be read from building, terrain, or topology datasets. Overlap regions 2320, 2321, and 2322 are also shown. Overlap regions 2320, 2321, and 2322 are each defined by the overlap of the respective building polygons of that region and the interior of the confidence region 2306.

[0127] In some embodiments, the 2D confidence region 2306 has a uniform density distribution (e.g., a normal distribution or other distribution). In other embodiments, the 2D confidence region 2306 follows a non-uniform distribution such as a weighted distribution where the weight increases closer to the centroid 2302 and decreases farther from the centroid 2302. For a uniform distribution, two overlapping building footprints that overlap the same area (e.g., 10%) can have the same importance when sorted according to which building the mobile device is most likely to be in. However, in embodiments where the 2D confidence region 2306 follows a non-uniform distribution, an overlapping region closer to the centroid 2302 can be weighted more than a similar-sized overlapping region farther from the centroid 2302. The weights of the applied overlap regions can be used when sorting the overlap regions to determine which building the mobile device is most likely to be in.

[0128] In the example shown, the first building polygon 2308 corresponds to the building located at "123 Main Street", or the building identified by a name or indicator (e.g., "Empire State Building", "Building 1", "A1", etc.), that is, a building that is 50 meters high, has 17 floors, has a 2.5% overlap with the 2D confidence region 2306 in the overlapping region 2320, and has a closest distance of 1.41 units to the centroid 2302. That is, 2.5% of the 2D confidence region 2306 overlaps with the first building polygon 2308.

[0129] The second building polygon 2310 corresponds to the building located at "234 Main Street", that is, a building that is 30 m high, has 9 floors, has a 7.3% overlapping region 2321 with the 2D confidence region 2306, and has a closest distance of 1 unit to the centroid 2302. That is, 7.3% of the 2D confidence region 2306 overlaps with the second building polygon 2310.

[0130] The third building polygon 2312 corresponds to the building located at "345 Main Street", that is, a building that is 20 m high, has 6 floors, has a 42.8% overlapping region 2322 with the 2D confidence region 2306, and has a closest distance of 0 units to the centroid 2302 because the centroid is located within 2312. That is, 42.8% of the 2D confidence region 2306 overlaps with the third building polygon 2312.

[0131] Returning to FIG. 22 and paying attention, in step 2202, an estimated user position (e.g., located at the center of gravity 2302) and an estimated user altitude (i.e., 3D (three-dimensional) estimated position) are determined. In some situations, the estimated user position and the estimated altitude may be determined using a mobile device (i.e., carried by the user), and the estimated position and / or the estimated altitude of the mobile device may be referred to. In other situations, the estimated user position and the estimated altitude may be values read from a server or another data source. As described above, in some embodiments, the 2D position of the mobile device can be determined using the positioning signals received by the mobile device. The altitude of the mobile device may be determined using similar positioning signals and / or may be determined based on the atmospheric pressure measurement performed using the barometric pressure sensor of the mobile device.

[0132] In step 2204, one or more physical buildings corresponding to the estimated user location are identified. For the estimated 3D determination position (e.g., a cylindrical volume including all 3D uncertainties, or an ellipsoid, etc.), all building polygons that overlap with the 2D confidence region of the estimated position (e.g., 2306) are included in the set of potential buildings where the user device may be located. For example, as shown in FIG. 23, the 2D confidence region 2306 overlaps with building polygons 2308, 2310, and 2312. Therefore, the initial set of potential buildings includes the buildings corresponding to building polygons 2308, 2310, and 2312. In some embodiments, if the height of those buildings does not overlap with the height having the estimated altitude of the estimated position, the potential buildings may be removed from the set. For example, if the estimated altitude of the user device is 100 m, any building with a height less than 100 m (or less than 100 m plus some buffer value to account for rounding, altitude uncertainty, and building database uncertainty) will be excluded from the set of potential buildings (e.g., if the user is estimated to be near the upper floors of the Empire State Building and has a 2D uncertainty of 400 m, it is likely that the user is less likely to be in other buildings, and a much better 2D uncertainty than what is provided may be inferred). Referring to FIG. 23, since the centroid 2302 is close to the third building polygon 2312, "345 Main Street" is likely to be the closest building and will be sorted first in the returned list of possible buildings and their respective floor estimates. However, if the altitude value of the estimated position at the centroid 2302 is outside the range of possible floors of 345 Main Street, that building may be excluded from the application programming interface (API) response listing the potential buildings.

[0133] In some embodiments, if the number of remaining buildings within the set of potential buildings is equal to zero, the estimated floor number is not returned to the user, the user is warned that there is no corresponding building detected within the estimated location area, and / or any combination of using the "base case" of the estimated floor number is included. The base case of the estimated floor number assumes no constraints on the building height or number of floors and uses process 2200 to convert the ellipsoid height or ground height associated with the estimated location into an estimated floor number and the reliability of the estimated floor number, while warning the user that no building is detected.

[0134] In some embodiments, if the number of remaining buildings within the set of potential buildings is equal to 1, the ellipsoid height or ground height associated with the estimated location is converted into an estimated floor number and the reliability of the estimated floor number using process 2200.

[0135] In some embodiments, if the number of remaining buildings within the set of potential buildings is greater than 1, for each building within the set of potential buildings, the ellipsoid height or ground height associated with the estimated location is converted into an estimated floor number and the confidence level of the estimated floor number using process 2200. In some embodiments, the estimated floor number for each building is returned to the user and listed separately, but ordered by the most likely buildings. In some embodiments, the most likely building can be estimated by calculating a metric of the distance between the centroid (e.g., 2302) and each building polygon and sorting by that metric. In such embodiments, the metric can be the average value of the distances, the median of the distances, or the overlap of the 2D confidence region (e.g., 2306) and the building polygon. In other embodiments, the potential buildings may be sorted by the percentage of overlap with the 2D confidence region (e.g., 2306).

[0136] In other embodiments, the metric is the size of the overlapping area, and the buildings may be sorted by the area of the building polygon that overlaps with the user's 2D confidence region, rather than by percentage. In yet other embodiments, the metric is proportional overlap, and the buildings may be sorted by the proportional overlap between the overlapping building polygon and the user's 2D confidence region. Proportional overlap is calculated by dividing the overlapping area by the total area of the building polygon. Thus, a very small building polygon that completely overlaps the user's 2D confidence region will be sorted ahead of a very large building that partially overlaps the user's 2D confidence region.

[0137] In yet other embodiments, only the buildings within the set may be included, or "outdoor" may be optionally included if there is a large overlap with the outdoor (i.e., if there is no large overlap with the buildings).

[0138] Returning to FIG. 22 and noting that at step 2206, an absolute total height envelope distribution corresponding to each of the potential buildings in the set is identified. In some embodiments, the absolute total height envelope distribution is read from the server or database used to store the absolute total height envelope distribution, as described with reference to step 1412 of process 1400. At step 2208, for each building in the set of potential buildings, a list of estimated floor numbers is determined using the estimated height of the building and the absolute total height envelope distribution. In some embodiments, in addition to, or instead of, the estimated floor numbers, estimated floor labels are determined using the mapping of estimated floor numbers and estimated floor labels described with reference to FIG. 21.

[0139] In step 2210, after a set of potential buildings is assembled and a related estimated floor number (with range) is calculated for each building within the set, the estimated floor number may be reported or returned to an endpoint (e.g., a user, a mobile device, a server, or the device that initiated process 2200). In some embodiments, the estimated floor number is returned to the endpoint via an application programming interface (API). The techniques and processes for generating the content of the API response returned to the endpoint, as disclosed herein, may be used together with or independently of other processes disclosed herein.

[0140] In some embodiments, the API response may be in the general form of estimated floor numbers = { {ADDRESS0, FLOORRANGE0, STATUS0}, {ADDRESS1, FLOORRANGE1, STATUS1},...}. For example, as shown in FIG. 23, if the user's elevation is equal to (26 ± 3) meters and the user's location overlaps three buildings, one building that is too short may be excluded from the set of potential buildings (i.e., 345 Main Street), and the remaining buildings may be sorted by the distance to the user's centroid, e.g., estimated floor numbers = { {"234 Main Street", "8+ / -1", ""}, {"123 Main Street", "10+ / -2", ""}}. In some embodiments, the distance to the user centroid is returned as part of the API response. In some embodiments, the distance to the user centroid is returned as part of the API response and the results are sorted by the receiving system.

[0141] In other embodiments, the floor representation can also be defined as a floor range, e.g., estimated floor numbers = { {"234 Main Street", "7,8,9", ""}, {"123 Main Street", "8,9,10,11", ""}}. Alternatively, the floor representation can be defined with asymmetric errors, e.g., estimated floor numbers = { {"234 Main Street", "8+ / -1", ""}, {"123 Main Street", "10+1-2", ""}}.

[0142] In yet other embodiments, short buildings can be included in the API response, but their status is flagged, for example, the estimated floor numbers are {{"345Main Street", "", "Short building"}, {"234Main Street", "8+ / -1", ""}, {"123Main Street", "10+1-2", ""}}.

[0143] In yet other embodiments, the outdoor portion, being the largest overlapping part, can be included in the API response, for example, the estimated floor numbers are {{"Outdoors", "", ""}, {"234Main Street", "8+ / -1", ""}, {"123Main Street", "10+ / -2", ""}}.

[0144] In yet other embodiments, the floor representation can be defined by a confidence percentage, for example, the estimated floor numbers are {{"234Main Street", "8(80%), 7(10%), 9(10%)", ""}, {"123Main Street", "10(60%), 9(10%), 8(10%), 11(20%)", ""}}.

[0145] In yet other embodiments, the floors or address representations can be ranked by a confidence percentage, but the individual confidence levels cannot be revealed, for example, the estimated floor numbers are {{"234Main Street", "8, 7, 9", ""}, {"123Main Street", "10, 9, 8, 11", ""}}.

[0146] In still other embodiments, after presenting the floors as the highest reliability floor / most likely floor (whether the reliability is disclosed or not), a range of floors (whether the reliability is disclosed or not) can be presented. For example, the estimated floor numbers = {{"234 Main Street", "8(80%), [8(80%), 7(10%), 9(10%)]", ""}, {"123 Main Street", "10(60%), [10(60%), 9(10%), 8(10%), 11(20%)]", ""}}, the estimated floor numbers = {{"234 Main Street", "8, [8, 7, 9]", ""}, {"123 Main Street", "10, [10, 9, 8, 11]", ""}}.

[0147] In still other embodiments, the floor presentation can be defined by a reliability percentage, but only the floor with the highest confidence value for each building is returned. For example, the estimated floor numbers = {{"234 Main Street", "8(80%)", ""}, {"123 Main Street", "10(60%)", ""}}.

[0148] In still other embodiments, the address presentation can be defined using a reliability percentage as well as an absolute confidence value. For example, the estimated floor numbers = {{"234 Main Street(50%)", "8 + / - 1", ""}, {"123 Main Street(30%)", "10 + / - 2", ""}}.

[0149] In still other embodiments, if additional information about unoccupied buildings is available, they may be excluded from the API response or the user may be warned. For example, the estimated floor numbers = {{"123 Main Street", "10 + / - 2", ""}}, or the estimated floor numbers = {{"234 Main Street", "8 + / - 1", "Unpopulated"}, {"123 Main Street", "10 + / - 2", ""}}.

[0150] In yet other embodiments, if additional information is available regarding floor numbers that are restricted or off-limits (e.g., an unmanned server room), those numbers can be excluded from the API response. For example, if 234 Main Street has a server room on the 8th floor, the estimated floor numbers are {{"234Main Street","7,9",""},{"123Main Street","10+ / -2",""}}.

[0151] In yet other embodiments, the building representation can be defined in terms of a confidence percentage, but only the building with the highest confidence value is returned. For example, the estimated floor numbers are {{"234Main Street(60%)","8+ / -1",""}}.

[0152] In yet other embodiments, both the floor representation and the building representation can be defined in terms of a confidence percentage, but only the building with the highest confidence value and the floor with the highest confidence value are returned. For example, the estimated floor numbers are {{"234Main Street(60%)","8(80%)",""}}.

[0153] Regarding process 1400 and other processes described herein, each geographical region can have hundreds or even thousands of physical buildings, and each building can have numerous possible permutations of floor numbers and floor labels. In addition to considering large datasets that may include known apartment numbers, elevator button information, etc., large datasets of regional and cultural rules are also considered. Therefore, the processes disclosed herein are advantageously performed by one or more mobile devices and / or servers and are not performed manually. This is because such mobile devices can measure the effects of the physical atmosphere and transmit data representing those measurements to one or more servers that can access and manipulate large datasets. For example, the selection of altitude envelope distribution constraints, the validation of altitude envelope distribution constraints, the construction of the range of altitude envelope distributions, the application of altitude envelope distribution constraints to altitude envelope distributions, the generation of the resulting total altitude envelope distribution, and the generation of the absolute total altitude envelope distribution may be repeated hundreds of times, if not thousands of times, for a region. Additionally, hundreds, if not thousands, of regions may be considered. Since the processes disclosed herein are advantageously implemented by mobile devices and / or servers, a dataset providing a mapping of estimated altitudes to estimated floor numbers and / or floor labels can have the advantage of being inexpensively and quickly created for any number of regions compared to a manual process of manually reading and creating the mapping through building surveys.

[0154] In some embodiments, in order to tighten the constraints of the individual floor distributions, the total floor distribution may be selectively selected for each floor number as needed. In some embodiments, the floor-to-floor spacing, as well as the spacing from the floor to the ceiling, and the boundary thickness need to be uniform throughout the building. In some embodiments, the basement floors (i.e., the basement levels) can be mapped using a similar approach; however, the depth of the building (similar to the building height) may not be well-documented and may not be easy to evaluate, and the number of basement floors may not be well-documented and may not be easy to evaluate. In such embodiments, some assumptions regarding ventilation and the building foundation may be made to limit the number of basement levels and / or the depth of the building. Additionally, in some embodiments, assumptions can be made directly regarding the number and / or depth of the basement levels / floors. For example, as one assumption, the building has 5 or fewer basement levels / floors, a depth of 20 m or less, or a total of 5 or fewer basement levels / floors with a depth of 20 m or less. Other assumptions regarding the depth of the building and the number of basement levels / floors may be made, which may be based on the geographical area where the building is located.

[0155] While it can be reasonably assumed that the floors of a building are horizontal (or flat), since the terrain is not necessarily horizontal, in some embodiments, rather than using the above-ground height of the mobile device, it is preferable to directly use the absolute total height envelope distribution of the building to convert from the altitude value of the ellipsoidal height of the mobile device to the estimated floor number as described below. For example, in a building built on sloping terrain where part of the lower level is underground on one side of the building, it is expected that the value of the ellipsoidal height will not change when the user walks horizontally around the floor of the building without changing floors. However, if the underlying terrain database indicates sloping terrain (excavated for building the building), the value of the above-ground height of the mobile device may be changed. Therefore, the above-ground height may be more unstable than the ellipsoidal height and may erroneously cause errors in the report of the estimated floor number.

[0156] As described above, the estimated altitude data of a mobile device can be measured in a number of ways, such as ellipsoidal height (HAE), mean sea level (MSL), and height above terrain (HAT). If the building database includes data measured / expressed in terms of height relative to a base plane (i.e., HAT), that is, if the building database provides a total altitude envelope distribution for different floors / floor numbers, the estimated altitude data of the mobile device may need to be converted to HAT by a process known in the art, as necessary. Further, if the building database includes data measured / expressed in terms of absolute height (i.e., HAE or MSL), that is, if the building database provides an absolute total altitude envelope distribution for different floors / floor numbers, the estimated altitude data of the mobile device may need to be converted to HAE or MSL by a process known in the art, as necessary. However, as noted above, care must be taken with the limitations when using HAT directly.

[0157] Any method (also referred to as a "process" or "approach") described by or made possible by the disclosure herein may be implemented by hardware components (e.g., machines), software modules (e.g., stored on a machine-readable medium), or a combination thereof. Specifically, any method described herein or made possible by this disclosure may be implemented by any of the specific and tangible systems described herein. By way of example, machines may include one or more computing devices, processors, controllers, integrated circuits, chips, system-on-chips, servers, programmable logic devices, field-programmable gate arrays, electronic devices, special-purpose circuits, and / or any other suitable devices described herein or otherwise known in the art. When executed by one or more machines, one or more non-transitory machine-readable media embodying program instructions to cause the one or more machines to perform or implement operations including any of the steps of the methods described herein are contemplated herein. As used herein, machine-readable media includes all forms of machine-readable media, including but not limited to one or more non-volatile or volatile memory media, removable or non-removable media, integrated circuit media, magnetic memory media, optical memory media, or any other memory media that may be eligible for patent under the laws of the jurisdiction in which this application is filed, such as RAM, ROM, and EEPROM, etc., but does not include machine-readable media that are not eligible for patent under the laws of that jurisdiction (such as transient propagation signals). The methods disclosed herein provide a set of rules to be implemented. Systems including one or more machines and one or more non-transitory machine-readable media for implementing any of the methods described herein are also contemplated herein. One or more machines configured or operable or adapted to perform or implement operations including the steps of any of the methods described herein are also contemplated herein.Each method described in this specification that is not prior art represents a set of specific rules in a process flow that provides significant advantages in the field of characterizing ground elevation reliability. The method steps described herein are not order-dependent and can be performed in parallel or, if possible, in an order different from that described. As will be understood by those skilled in the art, different method steps described herein can be combined to form any number of methods. Any method step or feature disclosed herein may be omitted from the claims for any reason. To avoid obscuring the concepts of this disclosure, certain well-known structures and devices are not illustrated. When two things are "coupled" to each other, they may be directly connected or may be separated by one or more intervening elements. In the absence of a line or intervening element connecting two specific things, unless otherwise specified, their coupling is assumed in at least one embodiment. When the output of one thing is coupled to the input of another, the information transmitted from the output is received at the input in its output format or a modified version thereof, even if the information passes through one or more intermediate things. Unless otherwise specified, any known communication path and protocol may be used to transmit the information (e.g., data, instructions, signals, bits, symbols, chips, etc.) disclosed herein. The terms "comprise", "comprising", "include", and "including" should be construed in an inclusive sense (i.e., not limited to) as opposed to an exclusive sense (i.e., consisting only of). Words using the singular or plural include the plural or singular, respectively, unless otherwise specified. The words "or" and "and" used in the detailed description include any and all items in the list unless otherwise specified. The terms "some", "any", and "at least one" refer to one or more. The terms "may" or "can" are used herein to indicate examples rather than requirements.For example, in each embodiment, a thing that may be capable of performing or can perform an operation, or a thing that may have or can have a characteristic, a thing that does not need to perform the operation, or a thing that has the characteristic, but in at least one embodiment, the object performs the operation or has the characteristic. Unless an alternative approach is described, access to data from a data source can be achieved using known techniques (e.g., the requesting component requests data from the source via a query or other known approach, the source searches for and locates the data, the source collects the data and sends it to the requesting component, or other known techniques).

[0158] FIG. 24 illustrates a transmitter component 2401, a mobile device 2402, and a server 2403, according to some embodiments. An example of a communication path is indicated by the arrows between the components.

[0159] As an example shown in FIG. 24, each of the transmitters 2401 includes a mobile device interface 11 (e.g., an antenna and RF front-end components known in the art or disclosed herein) for exchanging information with a mobile device, one or more processors 12, a memory / data source 13 for storing and retrieving information and / or program instructions, an atmosphere sensor 14 for measuring environmental conditions (e.g., pressure, temperature, humidity, etc.) at or near the transmitter, a server interface 15 (e.g., an antenna, network interface, etc.) for exchanging information with a server, and any other optional components known to those skilled in the art. The memory / data source 13 may include a memory that stores software modules having executable instructions, and the processor 12 may perform different actions including, by executing instructions from the modules, (i) performing some or all of the methods described herein, or other methods understood by those skilled in the art to be implementable at the transmitter, (ii) generating a ranging signal for transmission using a selected time, frequency, code, and / or phase, (iii) processing a signal received from a mobile device or other source, or (iv) other processing required by the operations described in this disclosure. The signals generated and transmitted by the transmitter may carry various information that, when determined by the mobile device or the server, may identify the location of the transmitter, the environmental conditions at or near the transmitter, and / or other information known in the art. The atmosphere sensor 14 may be integral with the transmitter or separate from the transmitter and may be installed with the transmitter or in the vicinity (e.g., within a threshold distance) of the transmitter.

[0160] As an example shown in FIG. 24, mobile device 2402 includes a transmitter interface 21 for exchanging information with a transmitter (e.g., an antenna and RF front-end components known in the art or disclosed herein), one or more processors 22, a memory / data source 23 for providing storage and retrieval of information and / or program instructions, an atmosphere sensor 24 (such as a barometer and temperature sensor) for measuring environmental conditions (e.g., pressure, temperature, etc.) in the mobile device, another sensor 25 for measuring other conditions (e.g., an inertial sensor for measuring movement and orientation), a user interface 26 (e.g., a display, keyboard, microphone, speaker, etc.) for enabling a user to provide inputs and receive outputs, another interface 27 for exchanging information with a server or other device external to the mobile device (e.g., an antenna, network interface, etc.), and any other optional components known to those skilled in the art. A GNSS interface and processing unit (not shown) are contemplated, and these may be integrated with other components (e.g., interface 21 and processor 22) or a stand-alone antenna, RF front-end, and a processor dedicated to receiving and processing GNSS signals.Memory / data source 23 may include a memory storing software modules having executable instructions, and processor 22, by executing instructions from the modules, may perform (i) all or part of the execution of a method described herein or understood by one of ordinary skill in the art to be executable on a mobile device otherwise, (ii) an estimation of the altitude of the mobile device based on pressure measurements from the mobile device and the transmitter, temperature measurements from the transmitter or another source, and any other information required for the calculation, (iii) the processing of received signals to determine location information (e.g., time of arrival or travel time of signals, pseudo ranges between the mobile device and the transmitter, atmospheric conditions of the transmitter, the transmitter and / or location, or other transmitter information), (iv) the use of location information to calculate the estimated location of the mobile device, (v) the determination of movement based on measurements from the inertial sensors of the mobile device, (vi) GNSS signal processing, or (vii) other processing required by the operations described in this disclosure, and may perform different operations.

[0161] As an example shown in FIG. 24, server 2403 may include a mobile device interface 31 (e.g., an antenna, a network interface, etc.) for exchanging information with a mobile device, one or more processors 32, a memory / data source 33 for providing storage and retrieval of information and / or program instructions, a transmitter interface 34 for exchanging information with a transmitter (e.g., an antenna, a network interface, etc.), and any other components known to those skilled in the art. The memory / data source 33 may include a memory storing software modules having executable instructions, and the processor 32, by executing instructions from the modules, may perform (i) some or all of the execution of methods described herein or understood by those skilled in the art to be executable on a server otherwise, (ii) advanced estimation of a mobile device, (iii) calculation of an estimated location of a mobile device, or (iv) other processing required in the operations described in this disclosure. Steps performed by a server as described herein may also be performed on another machine remote from the mobile device, including a corporate computer or any other suitable machine.

[0162] Certain aspects disclosed herein relate to estimating the location of a mobile device. For example, the location can be expressed in terms of latitude, longitude, and / or altitude coordinates, x, y, and / or z coordinates, angular coordinates, or other representations. A variety of techniques can be used to estimate the location of a mobile device, including trilateration, which is a process of using the distances traveled by different “positioning” (or “ranging”) signals received by the mobile device from different beacons (such as terrestrial transmitters and / or satellites) and using geometric arrangements to estimate the location of the mobile device. When position information such as the transmission time and reception time of the positioning signal from the beacon is known, multiplying the difference in those times by the speed of light yields an estimate of the distance the positioning signal has traveled from that beacon to the mobile device. Different estimated distances corresponding to different positioning signals from different beacons can be used, along with position information such as the locations of those beacons, to estimate the location of the mobile device. Positioning systems and methods for estimating the location (with respect to latitude, longitude, and / or altitude) of a mobile device based on positioning signals from beacons (such as transmitters and / or satellites) and / or atmospheric measurements are described in commonly assigned U.S. Patent No. 8,130,141, issued March 6, 2012, and U.S. Patent No. 9,057,606, issued June 16, 2015. Note that the term “positioning system” may refer to global navigation satellite systems (GNSS) such as GPS, GLONASS, Galileo, and Compass / Beidou, terrestrial transmitter systems, and satellite / terrestrial hybrid systems.

Claims

1. selecting a set of elevation envelope distribution constraints for the physical building; generating a set of a plurality of altitude envelope distributions for the physical building according to a set of altitude envelope distribution constraints, each altitude envelope distribution including a plurality of first altitude envelopes, each of the first altitude envelopes corresponding to a respective estimated floor number of the physical building, each floor number corresponding to a plurality of altitude envelopes; generating an aggregate altitude envelope distribution for the physical building using the set of altitude envelope distributions and according to the set of altitude envelope distribution constraints, the aggregate altitude envelope distribution including a plurality of second altitude envelopes, each second altitude envelope corresponding to a respective estimated floor number of the physical building; determining a reference elevation for the physical building; determining an absolute total altitude envelope distribution using the reference altitude and the total altitude envelope distribution, the absolute total altitude envelope distribution including a plurality of third altitude envelopes, each of the third altitude envelopes corresponding to a respective estimated floor number of the physical building; A method comprising:

2. Generating a set of elevation envelope distributions for the physical building according to a set of elevation envelope distribution constraints includes: generating an initial set of altitude envelope distributions using a first altitude envelope distribution constraint; filtering the initial set of altitude envelope distributions with a second altitude envelope distribution constraint; using any remaining altitude envelope distributions of the initial set of altitude envelope distributions after filtering as the set of altitude envelope distributions; The method of claim , comprising:

3. the first altitude envelope distribution constraint is a maximum rank; the second elevation envelope distribution constraint is a maximum building height; The method of claim 2.

4. the initial set of altitude envelope distributions includes a plurality of altitude envelope distributions; Each of the altitude envelope distributions includes a minimum altitude value and a maximum altitude value associated with each floor number of the altitude envelope distribution. The method of claim 2.

5. the set of elevation envelope distribution constraints is selected from a list of constraints including minimum building height, maximum building height, minimum floor height, maximum floor height, minimum number of stories, and maximum number of stories; The method of claim 1.

6. selecting the set of elevation envelope distribution constraints includes validating the initially selected set of elevation envelope distribution constraints individually and in combination based on a morphology of an area including the physical buildings; The method of claim 5.

7. determining estimated altitude data for a mobile device; for each floor number in the absolute total altitude envelope distribution, upon determining that the estimated altitude is within the altitude envelope corresponding to the floor number, adding the floor number to a list of estimated floor numbers; returning the list of estimated floor numbers to an endpoint; The method of claim 1 further comprising:

8. identifying estimated altitude data for a mobile device; For each floor number in the absolute total altitude envelope distribution, calculating the vertical central tendency of the altitude envelope corresponding to that floor number; For each floor number of the absolute total altitude envelope distribution, calculating a distance measure between the estimated altitude and the vertical central tendency corresponding to that floor number; for each floor number in the absolute total altitude envelope distribution, conditionally adding the floor number to a list of estimated floor numbers based on the distance measure for the floor number; returning the list of estimated floor numbers to an endpoint; The method of claim 1 further comprising:

9. conditionally adding the floor number to a list of probable floor numbers based on the distance measure for the floor number, Adding a floor number to the list of estimated floor numbers when the distance amount corresponding to the floor number is the smallest compared to the distance amounts corresponding to other floor numbers. The method of claim 8, comprising:

10. conditionally adding the floor number to a list of probable floor numbers based on the distance measure for the floor number, adding a floor number to the list of estimated floor numbers if the corresponding distance amount of the floor number is less than a given threshold. The method of claim 8, comprising:

11. conditionally adding the floor number to a list of probable floor numbers based on the distance measure for the floor number, adding all possible floor numbers to said list of probable floor numbers ordered by their respective distance measures; The method of claim 8, comprising:

12. determining estimated altitude data for a mobile device; For each floor number of the absolute total altitude envelope distribution, calculating an altitude overlap value using the estimated altitude data and the altitude envelope corresponding to that floor number; for each floor number in the absolute total altitude envelope distribution, conditionally adding the floor number to a list of estimated floor numbers based on the calculated altitude overlap value for the floor number; returning the list of estimated floor numbers to an endpoint; The method of claim 1 further comprising:

13. conditionally adding the floor number to a list of probable floor numbers based on the calculated altitude overlap value for the floor number, i) adding a floor number to the list of estimated floor numbers if the calculated altitude overlap value for the floor number is the largest calculated altitude overlap value compared to the calculated altitude overlap values ​​corresponding to other floor numbers; ii) adding a floor number to the list of estimated floor numbers if the floor number's corresponding calculated altitude overlap value is greater than a given percentage threshold; iii) adding all possible floor numbers to the list of estimated floor numbers ordered by their respective calculated altitude overlap values.

13. The method of claim 12, comprising:

14. mapping each estimated floor number of said physical building to an estimated floor label of the same name; removing putative floor labels from said mapping based on one or both of regional and cultural criteria; adding additional estimated floor labels to the mapping; matching the estimated floor number to the estimated floor label; The method of claim 1 further comprising:

15. Identifying an estimated location of a mobile device and an estimated altitude of said mobile device; identifying one or more physical buildings corresponding to the estimated location of the mobile device; identifying, for each of the one or more physical buildings, a respective absolute total altitude envelope distribution associated with the building; determining, for each of the one or more physical buildings, a list of estimated floor numbers using the estimated altitude of the mobile device and the respective absolute total altitude envelope distribution associated with the building; returning the list of estimated floor numbers for each of the one or more physical buildings to an endpoint; and The method of claim 1 , comprising: