Смена центра вращения маркера в MAPBOX - PullRequest
0 голосов
/ 24 марта 2020

этот код перемещает маркер вокруг одной точки (для Африки), мне нужно перейти в другое место. Кто-нибудь, помогите мне, пожалуйста. Спасибо

var marker = new mapboxgl.Marker();

    function animateMarker(timestamp) {
        var radius = 20;

        // Update the data to a new position based on the animation timestamp. The
        // divisor in the expression `timestamp / 1000` controls the animation speed.
        marker.setLngLat([
            Math.cos(timestamp / 1000) * radius,
            Math.sin(timestamp / 1000) * radius
        ]);

        // Ensure it's added to the map. This is safe to call if it's already added.
        marker.addTo(map);

        // Request the next frame of the animation.
        requestAnimationFrame(animateMarker);
    }

    // Start the animation.
    requestAnimationFrame(animateMarker);

1 Ответ

0 голосов
/ 24 марта 2020

Вам необходимо изменить функцию marker.setLngLat(), чтобы сместить долготу и широту маркера в соответствии с вашим предпочтительным местоположением. См. Mapbox документация .

Например, приведенный ниже фрагмент кода будет анимировать маркер вокруг Джакарты, Индонезия.

  marker.setLngLat([
    Math.cos(timestamp / 1000) * radius + 106.8,
    Math.sin(timestamp / 1000) * radius - 6.2
  ]);

Полный CodePen здесь .

Отказ от ответственности: я работаю в Mapbox

...