Table of Contents

Pick Location and Basic Map Interactions

This page is about basic interactions that occur between the Viewer and the third-party map.

Pick location on Map

In some scenario's the viewer needs the third party viewer to provide a coordinate :

This is how that process works :

  1. The viewer dispatches the onPickPositionRequested signal.
  2. You ask the user to provide a position in the third-party viewer.
  3. You provide this position to the SDK.

Note that when providing a coordinate to the SDK, it must be provided with a CRS code.

handlePickPositionRequested() {
  // Set a flag
  waitingForPickPosition = true;
  // Request the click from the user...  
}
handleUserPickedPosition(x,y,crs) {
  // Pass position to the viewer
  let coordinate = Coordinate.fromXY(crs,x,y);
  viewer.setPickPosition(coordinate);
}
viewer.onPickPositionRequested.add(handlePickPositionRequested);

Focus Viewer to a Position

One simple function exists to focus the viewer on a coordinate. When called, the viewer will ask all views to focus on the given coordinate :

var coordinate = Coordinate.fromXY("4326",longitude,latitude);
viewer.setFocusPosition(coordinate);

Zoom to Extent

Zooming to a specific extent is something the user can request from inside the Viewer. One example is zooming to a resource extent. It is up to you as an SDK developer to implement this action.

The provided extent will always be expressed in the default crs.

function handleZoomToExtent(extent) {
  // Zoom third-party viewer to the given extent.
  // ...
}
// Listen to event.
viewer.onZoomToExtent.add(handleZoomToExtent);