Skip to content

Fly to a location

Fly to a random location.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <script src="https://cdn.smartmaps.cloud/packages/smartmaps/smartmaps-gl/v2/umd/smartmaps-gl.min.js"></script>
        <style>
            body {
                margin: 0;
                padding: 0;
            }

            html,
            body,
            #map {
                height: 100%;
            }
        </style>
    </head>

    <body>
        <style>
            #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>
        <div id="map"></div>
        <br />
        <button id="fly">Fly to location</button>
        <script>
            const map = new smartmapsgl.Map({
                apiKey: "INSERT API-KEY",
                container: "map",
                center: { lat: 49.02164948779226, lng: 8.439330018049352 },
                zoom: 7,
                style: smartmapsgl.MapStyle.LIGHT,
            });

            document.getElementById("fly").addEventListener("click", () => {
                // Fly to a random location by offsetting the point -74.50, 40 by up to 5 degrees.
                map.flyTo({
                    center: [
                        -74.5 + (Math.random() - 0.5) * 10,
                        40 + (Math.random() - 0.5) * 10,
                    ],
                    essential: true, // This animation is considered essential with respect to prefers-reduced-motion
                });
            });
        </script>
    </body>
</html>