This is documentation of an archived release.
For documentation on the current version, please check Knowledge Base.

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 :

  • The user activates the “Move Position” action on a View.

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 :

  • 3D Views will pan, to bring the position into focus.
  • Photo Views will
    • 1) Open the best photo for the given coordinate and
    • 2) Bring the position into focus on the photo.
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);
 
Last modified:: 2019/03/25 11:36