HintFloorHeight
Restrict localization search to a specific floor using a vertical Y-axis band
Last updated
Was this helpful?
Restrict localization search to a specific floor using a vertical Y-axis band
hintFloorHeight is a localization hint that limits the search to a specific vertical range. This is particularly useful in multi-floor buildings where frames from different floors may look visually similar.
By filtering to the expected floor before running feature matching, you reduce both the search space and the likelihood of cross-floor mismatches.
The VPS system uses map-local Y coordinates to represent height. When you provide hintFloorHeight: [y_min, y_max], the search runs within that Y range only.
Coordinate system notes:
Y is the vertical axis in both single-Map and MapSet (global) coordinate spaces
Positive Y is typically up, but the exact values depend on how your map was captured
For MapSet queries, positions are expressed in the shared global coordinate system

JSON body (/vps/map/query)
Array of two numbers
"hintFloorHeight": [1.5, 4.5]
Form-data (/vps/map/query-form, /vps/map/multi-image-query)
JSON-encoded string
"hintFloorHeight": "[1.5, 4.5]"
Order does not matter — [-3, -1] and [-1, -3] both select frames with y ∈ [-3, -1].
hintFloorHeight and hintPosition can be used together. The pipeline applies them in sequence:
hintPosition — filters to frames within the 25 m horizontal radius
hintFloorHeight — further restricts to frames within the vertical band
This two-stage filter is ideal when you know both the approximate XZ location and the floor level.
MapSet multi-map example: In a MapSet where Floor 1 maps span y ∈ [0, 3] in global space, pass "hintFloorHeight": [0, 3] to restrict search to only Floor 1 maps across all constituent maps.
Measure floor and ceiling Y values from a known localization result or from the map's coordinate metadata. You can also read these Y values directly by picking a floor point and a ceiling point on the mesh, see Find Hint Coordinates.
Add a small buffer (e.g. ±0.3 m) to account for device height variation and imprecise floor detection
For tall single-floor spaces (e.g. warehouses), use a generous range that covers the full height of the space
Combine with hintPosition when you have both horizontal and vertical context — this gives the tightest search scope and best latency
Last updated
Was this helpful?
Was this helpful?
// Floor 1: floor at y=0, ceiling at y=3.0
{
"hintFloorHeight": [0.0, 3.0]
}
// Floor 2: floor at y=3.0, ceiling at y=6.0
{
"hintFloorHeight": [3.0, 6.0]
}
// Basement (negative Y)
{
"hintFloorHeight": [-3.0, -0.5]
}
// Combined with hintPosition (JSON body)
{
"hintPosition": [12.5, 2.0, -7.3],
"hintFloorHeight": [0.0, 3.0]
}
// Form-data endpoint — pass as JSON string
"hintFloorHeight": "[1.5, 4.5]"
