Skip to content

Compatibility with STAC API

Panoramax viewer works best with a Panoramax API, but is designed to be compatible with a wide range of STAC API. Although, third-party STAC API needs the following requirements to work with our viewer.

Search endpoint

Your STAC API should offer a /search endpoint (documentation).

Collections and items

Collections should correspond to pictures sequences, and items corresponding to individual pictures.

Individual pictures should follow STAC item specification, plus some extensions:

  • Perspective imagery specification for its pictures and sequences metadata (documentation)
  • Tiled assets specification for smooth display of high-resolution pictures (documentation)
List of support item metadata
  • assets
    • roles: data, visual and thumbnail
    • type: image/jpeg or image/webp
    • href
  • assets_templates
    • tiles
      • role: data
      • href
  • geometry
  • collection
  • id
  • links
    • rel: prev, next, related
    • type: application/geo+json
    • id
    • geometry
    • datetime
  • properties
    • pers:interior_orientation
      • field_of_view
      • focal_length
    • view:azimuth
    • pers:roll
    • pers:pitch
    • datetime or datetimetz
    • tiles:tile_matrix_sets
      • geovisio
        • type: TileMatrixSetType
        • tileMatrix
          • matrixHeight
          • matrixWidth
          • tileHeight
          • tileWidth

🗺 Vector tiles

If you want to use map in viewer, your STAC API should offer 🗺 vector tiles, through one of these ways:

  • A MapLibre Style JSON file, advertised through landing page (/api) with a xyz-style link.
  • A direct tiles URL, pointing to tiles in MVT format and following layer structure described below. It must be advertised in landing page (/api) using Web Map Links STAC extension (as xyz link).

Layers

MVT Vector tiles must have the following layers:

Name Zooms Mandatory Properties
sequences All - id: sequence ID
pictures >= 15 - id: picture ID
- ts: picture date/time
- heading: picture heading in degrees
grid < 6 Mandatory:
- id: grid cell ID
- nb_pictures: amount of pictures
- coef: value from 0 to 1, relative quantity of available pictures
Optional:
- nb_360_pictures
- coef_360_pictures
- nb_flat_pictures
- coef_flat_pictures
(similar to nb_pictures and coef but separated by picture type)

Translation

If your vector tiles support multiple languages, you can set in your style.json the list of supported languages :

{
    "metadata": {
        "panoramax:locales": ["fr", "en", "latin"]
    }
}

The viewer will try to find the best matching name:LANG property according to user browser settings.