This article introduces panorama data, and shows you how to prepare it for use in LuciadRIA.

LuciadLightspeed and LuciadFusion provide API to model, load, process and serve panorama data to LuciadRIA. They don’t provide an immersive 360° view of panorama data on a map, though. LuciadRIA does offer panorama visualization that is fully integrated on a 3D map.

You can use the Panorama Viewer sample to load panorama positions on a map and inspect the raw panoramic images.

Loading and modeling panorama data

Panorama data consists of:

  • Panorama feature information, such as positions, image tiling information, and data properties such as the timestamp and file name. This is standard vector feature information. You typically find it stored in formats such as GeoJson and ShapeFile, a spatial database, or a custom format.

  • Panorama images. These can be embedded with the feature information in a custom format. They can also be stored as separate files.

For more detail about the nature of panorama data, see What is panoramic image data?.

LuciadLightspeed and LuciadFusion support panorama data in the Pegasus Mobile Mapping and E57 formats out-of-the-box.

You can plug in other, custom panorama data by implementing an ILcdModelDecoder that makes ILcdPanorama objects. See this article for instructions.

Processing panoramas from the command line

The Panorama Converter sample is a command line application. You use it to convert panorama data to the Luciad Panorama Format. See the documentation that comes with the sample for more information.

The sample can decode panorama data if there is a suitable model decoder in the classpath.

It uses TLcdLuciadPanoramaModelEncoder to create a tiled and multi-leveled dataset.

Processing and serving panoramas with LuciadFusion

LuciadFusion can also process a panoramic image format into the Luciad Panorama Format, and serve the data for optimized visualization in LuciadRIA.

It works in the same way as the Panorama Converter sample. LuciadFusion picks up model decoders from the classpath, and creates a tiled and multi-leveled dataset. You can then serve that dataset through a panorama web service.

Visualizing panoramas with LuciadRIA

To find out how to visualize the processed panoramas in LuciadRIA, see the Panorama sample in LuciadRIA, the TypeScript API documentation of FusionPanoramaModel, and the related articles.

This is a snippet to get you started:

Creating a layer in LuciadRIA based on a LuciadFusion Panorama endpoint
  const fusionEndpoint = "http://fusionhost/panoramic/mydata/cubemap.json";
  const model = new FeatureModel(new UrlStore({ target: fusionEndpoint }));
  const panoModel = new FusionPanoramaModel(fusionEndpoint);
  const layer = new FeatureLayer(model, {
    panoramaModel: panoModel,
    painter: new PanoramaFeaturePainter({ iconHeightOffset: 2.5 }),
    label: "Panoramas",
  });