Skip to main content

Slowly fly to a location

Use flyTo with flyOptions to slowly zoom to a location.


<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="https://maps-sdk.trimblemaps.com/v4/trimblemaps-4.2.3.css" />
        <script src="https://maps-sdk.trimblemaps.com/v4/trimblemaps-4.2.3.js"></script>
        <style>
            body { margin: 0; padding: 0; }

            html,body,#map {
                height: 100%;
                overflow: hidden;
            }
            #fly {
                display: block;
        position: absolute;
        top: 20px;
        left: 50%;
        transform: translate(-50%);
        width: 50%;
        height: 40px;
        padding: 10px;
        border: none;
        border-radius: 3px;
        font-size: 12px;
        text-align: center;
        color: #fff;
        background: #ee8a65;
            }
        </style>
    </head>
    <body>
        <div id="map"></div>
          <br>
     <button type="button" id="fly">Fly</button>

        <script>
          const start = [-74.5, 40];
          const end = [74.5, 40];
          TrimbleMaps.setAPIKey('YOUR_API_KEY_HERE');
        const map = new TrimbleMaps.Map({
        container: "map",
        style: TrimbleMaps.Common.Style.TRANSPORTATION,
        center: start,
        zoom: 9,
      });

      let isAtStart = true;

      document.getElementById('fly').addEventListener('click', () => {
        // depending on whether we're currently at point a or b, aim for
        // point a or b
        const target = isAtStart ? end : start;

        // and now we're at the opposite point
        isAtStart = !isAtStart;

        map.flyTo({
          // These options control the ending camera position: centered at
          // the target, at zoom level 9, and north up.
          center: target,
          zoom: 9,
          bearing: 0,

          // These options control the flight curve, making it move
          // slowly and zoom out almost completely before starting
          // to pan.
          speed: 0.2, // make the flying slow
          curve: 1, // change the speed at which it zooms out

          // This can be any easing function: it takes a number between
          // 0 and 1 and returns another number between 0 and 1.
          easing(t) {
            return t;
          },

          // this animation is considered essential with respect to prefers-reduced-motion
          essential: true,
        });
      });
    </script>
  </body>
</html>

Last updated June 26, 2025.