Table of Contents

Show Footprints

This page describes how to track Resource updates to render Footprints on the Reference Map.

Listening

You as a developer should listen for changes to the Reference Map extent. When it changes, footprints should be updated.

To listen to resource changes, use these signals :

When any of these events occur, footprints should be refreshed.

Loading

Use the getStreamingFootprints2D to retrieve footprints for a 2D map.

Depending on your host environment, it may be the case that “map extent” events are fired faster than you can handle them. In such a case, loading footprints should be rate-limited by limiting the calls to the getStreamingFootprints2D function.

For javascript, see https://www.npmjs.com/package/debounce

/**
 * Update footprint data.
 * Assumes reference map scale,crs,minX,minY,maxX and maxY properties are available in this context.
 */
function updateFootprints() {
  // Get map extent
  var bounds = Bounds.fromXY(crs,minX,minY,maxX,maxY);
  // Get map objects
  var mapObjects = viewer.getStreamingFootprints2D(null/*resourceIds*/,bounds,scale).then(renderFootprints);
  // Render map objects
  renderMapObjects(mapObjects);
}
// Listen to signals
viewer.onResourceOpened.add(updateFootprints);
viewer.onResourceClosed.add(updateFootprints);

Rendering

See About MapObjects.