Mapbox-GL: управление областью масштабирования

Что вы кодируете для управления масштабом пользовательской карты mapbox.gl, чтобы когда пользователь уменьшал и увеличивал масштаб, он всегда начинался и заканчивался, соответственно, на одной и той же долготе/широте, независимо от того, где находится курсор/указатель пользователя?
Прямо сейчас у меня установлены maxZoom и minZoom, но когда пользователь уменьшает и снова увеличивает масштаб, он оказывается там, где находится курсор, а не в начальной точке карты, к которой я хочу вернуться.


person JYP18    schedule 17.02.2016    source источник


Ответы (1)


Вы можете управлять координатами, в которых карта может быть уменьшена, установив ограничивающую рамку:

// Set bounds to New York, New York
var bounds = [
    [-74.04728500751165, 40.68392799015035], // Southwest coordinates
    [-73.91058699000139, 40.87764500765852]  // Northeast coordinates
];

var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mapbox/streets-v8',
    maxBounds: bounds
});

Таким образом, уменьшение масштаба всегда будет приземляться на эти координаты. См. ограничить границы для живого примера.

person tristen    schedule 17.02.2016
comment
О, спасибо, Тристен, но в этом примере, когда пользователь прокручивает, чтобы увеличить масштаб, как вы управляете им, чтобы он приближался точно к тому месту, где вы начали? Есть ли опция MinBounds? - person JYP18; 17.02.2016