Mapbox.GL: увеличивайте и уменьшайте масштаб до определенных координат на карте пользовательского мапбокса.

Я встроил пользовательскую карту студии mapbox на свой сайт и установил координаты minZoom и maxZoom, чтобы она уменьшалась только до определенного уровня масштабирования и увеличивалась до определенного уровня масштабирования. НО, когда пользователь снова увеличивает масштаб, карта перемещается туда, где пользователь помещает указатель мыши, и это правильно, НО я хочу, чтобы он вернулся к исходной точке, а не к тому месту, где пользователь помещает указатель мыши.
Это ближайший пример, который я нашел, но мне не нужен рассказ, я хочу, чтобы пользователь просто прокручивал карту: https://www.mapbox.com/mapbox-gl-js/example/scroll-fly-to/

Как сделать так, чтобы, когда пользователь прокручивает вниз встроенную карту, масштабируется до определенного набора координат, а когда пользователь прокручивает назад, встроенная карта возвращается к определенному набору координат?

var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v8',
center: [-118.451784, 34.035947], // starting position
zoom: 11.66,
maxZoom: 11.66, // starting zoom
minZoom: 1.4, // ending zoom
doubleClickZoom: false,
dragRotate: false,
dragPan: false

});


person JYP18    schedule 19.02.2016    source источник
comment
Как ни странно, масштабирование до фиксированных координат оказывается нестандартным, если координаты заданы с помощью React Mapbox GL. Чтобы приблизиться к поведению mapbox по умолчанию, посмотрите на их событие onDragEnd.   -  person pzrq    schedule 22.11.2019


Ответы (1)


К сожалению, это непросто с существующим API mapbox-gl-js. Я рекомендую отключить все встроенные обработчики взаимодействия и написать ваш собственный обработчик событий для wheel события, которое вызывает _ 2_

person Lucas Wojciechowski    schedule 02.03.2016