Как изменить / смещение центральной точки камеры в Mapbox GL JS?

#canvas #mapbox-gl-js #mapbox-gl

#холст #mapbox-gl-js #mapbox-gl

Вопрос:

Мне нужно выполнить flyTo () в определенном месте с небольшим смещением, а затем запустить анимацию поворота камеры вокруг этой точки.

Проблема в том, что камера не учитывает это смещение. Это приводит к вращению камеры вокруг центральной точки карты, но не вокруг точки со смещением, указанной в вызове flyTo().

 map.flyTo({
  zoom:    point.zoom,
  center:  point.coords,
  bearing: point.bearing,
  pitch:   point.pitch,
  offset:  point.offset
});

map.once('moveend', () => rotateCamera(map.getBearing()));
 

В CameraOptions есть свойство с именем «around», но я не понял его назначения… В документации нет примера, и эксперименты не прояснили это.

Есть ли какой-нибудь способ решить эту проблему?

Ответ №1:

Это можно обойти с помощью CSS:

 #map {
  /* ... */
  padding-left: 200px;
  margin-left: -200px;

  padding-top: 200px;
  margin-top: -200px;
  overflow: hidden;
}
 

Но это «решение» кажется хакерским…