GeoHint in Localization

Release v1.7.0 adds two major features to the MultiSet VPS for improved localization in large georeferenced maps.

  1. GeoHint in Localization Requests

    • Purpose: Pass the device’s GPS coordinates (latitude, longitude, altitude) in localization requests after georeferencing your map.

    • Benefits:

      • Significantly reduces localization time in large outdoor environments.

      • Mitigates issues of visual aliasing.

      • Improves overall localization performance and accuracy.

  2. GeoCoordinates in Localization Responses

    • Purpose: Get localization results directly in global GPS coordinates (latitude, longitude, altitude).

    • Benefits:

      • Enables seamless integration with other applications or services that rely on GPS coordinates.

      • Directly connects localization results to real-world locations.


How to Use These Features

In Unity (MultiSet SDK Manager)

Both features are available as boolean checkboxes in the MultiSet SDK Manager component in Unity:

  • passGeoPose: Enables sending device GPS as a GeoHint in requests.

  • geoCoordinatesInResponse: Enables receiving localization results in global GPS coordinates.

Setup Steps:

  1. Update Map GeoCoordinates: Before enabling these features, update the geo-coordinates of your map in the MultiSet Developer Portal.

  2. Enable Options in Unity:

    • Open your scene and select the MultiSet SDK Manager (or Single Frame Localization Manager).

    • Check the boxes for Pass GeoPose and/or GeoCoordinates In Response as needed.

GeoHint for MapSet

To enable GeoHint in MapSet, start by georeferencing the primary map. Afterward, merge all the maps to enable georeferencing for the entire MapSet.


Using MultiSet Localization API Directly

If you are integrating via the API (outside Unity), you can enable these features by including the following fields in your localization request:

Request Parameters

Field

Type

Description

geoHint

string

Comma-separated string, e.g. "latitude,longitude,altitude". Pass the device's GPS as a hint for localization.

convertToGeoCoordinates

string

Pass "true" to receive localization response in global coordinates.

Example Request Body and Response:

JSON

{
  "mapId": "your-map-id",
  "geoHint": "37.4219983,-122.084,10.5",
  "convertToGeoCoordinates": "true",
  "isRightHanded": "false",
  ..... /other parameters
}
{
    "poseFound": true,
    "position": {
        "x": 18.02616906718104,
        "y": 0.2390845541686672,
        "z": 49.78523293043798
    },
    "rotation": {
        "x": 0.05252280356066648,
        "y": 0.7499672061823682,
        "z": -0.09851352860000855,
        "w": 0.6519859119949725
    },
    "confidence": 0.970913770913771,
    "mapIds": [
        "686b8c196e3d69f9d7b537b3"
    ],
    "geoCoordinates": {
        "latDeg": 12.840526251549763,
        "lonDeg": 77.64296833050544,
        "altM": 933.239305568859
    }
}

Feature Details

1. Passing GeoHint in Localization

  • How: When passGeoPose is enabled, the SDK will automatically attach the device’s current GPS coordinates to your localization request.

  • Why: This narrows down the search area in large outdoor georeferenced maps, speeding up localization and reducing errors.

2. Receiving GeoCoordinates in Response

  • How: When geoCoordinatesInResponse is enabled (or when convertToGeoCoordinates: "true" is included in API requests), the SDK converts the localization result into global GPS coordinates.

  • Why: This is useful for interoperability with external systems or for mapping localization results to real-world positions.


Important Notes

  • Map Preparation: Ensure your map is properly geo-referenced and updated in the MultiSet Developer Portal before using these options.

  • Platform Support: GPS functionality requires device location permissions; the SDK will prompt the user accordingly.

  • Unity Integration: No additional scripting is needed—just enable the options in the SDK Manager.


Last updated

Was this helpful?