Skip to main content

Map Navigation

Camera Controls

GeoLens uses standard CesiumJS camera controls:

InputAction
Left click + dragRotate / tilt the globe
Right click + dragZoom in or out
Scroll wheelZoom in or out
Middle click + dragPan the camera laterally
Double-clickZoom to the clicked location
Ctrl + dragLock altitude and pan

Automatic Camera Flying

Many features automatically fly the camera to a relevant location when activated:

FeatureFlies To
NY Street CamerasNew York City area
Emergency Management eventsEvent location (on click)
CO₂ SensorsCentral Florida
Boundary SelectionSelected state or county
River GaugesGauge location (on click)

Camera fly animations use viewer.camera.flyTo() or viewer.flyTo() with a configurable duration.

Map Maximize

Click the button in the top-right of the map to expand the Cesium view to full-screen width (the sidebar is hidden). A small restore button appears in the bottom-left to bring the sidebar back.

Info Boxes

Clicking on most map entities (cameras, sensors, events, gauges) opens an info box — a floating panel positioned near the top-right of the map. Info boxes display details and interactive controls (charts, links, buttons). Only one info box is visible at a time; opening a new one closes the previous.

Info boxes can be closed by:

  • Clicking the × button on the info box
  • Clicking elsewhere on the map (Cesium's default entity deselect)

Map Base Layer

The default imagery is Cesium's built-in Bing Maps aerial. The base layer changes are reflected in weather and AQI panel updates (those panels reverse-geocode the current camera center).

Weather & AQI Auto-Update

When the Weather or Air Quality panels are open, panning the map triggers an automatic update (debounced to 1 second) to reflect the new map center location. The current center is extracted with:

const ray = viewer.camera.getPickRay(
new Cesium.Cartesian2(canvas.clientWidth / 2, canvas.clientHeight / 2)
);
const position = viewer.scene.globe.pick(ray, viewer.scene);