Установка максимальной границы не является рабочим листком

#javascript #html #leaflet

#javascript #HTML #листовка

Вопрос:

Кажется, я не могу установить максимальную границу, чтобы карта отскакивала назад после того, как пользователь достиг определенной точки. Также каждый раз, когда я устаю менять код fitbounds(), карта исчезает с моего веб-сайта.

Я просматривал документацию по листовке снова и снова, без особой удачи, и искал в Google какие-либо ответы, и весь код, который я пробовал, не работал. Я полагаю, что я упускаю или не вижу чего-то действительно простого.

Есть идеи?

Ответ №1:

Если все, что вы хотите, это ограничить просмотр заданной географической границей, самое простое решение — установить maxBounds опцию. Если только вы не хотите делать это динамически, в этом случае можно использовать setMaxBounds . fitBounds Метод кажется избыточным и на самом деле может быть причиной, по которой вы не получаете желаемого результата.

 var southWest = L.latLng(52.456009,-10.685582);
var northEast = L.latLng(51.699800,5.215615); 

var maxBoundArea = L.latLngBounds(southWest, northEast);

var map = L.map('map', {        
    zoomControl:true, 
    maxNativeZoom:28, 
    minZoom:8, 
    maxBounds: maxBoundArea
});
  

Комментарии:

1. Спасибо, это было очень полезно!!

2. Я рад, что смог помочь. 🙂 Добро пожаловать в StackOverflow, кстати!

Ответ №2:

Я бы предложил написать ограничивающую функцию

 function constrain(n,low,high){
    return Math.max(Math.min(n, high), low);
}
  

* Примечание: я сам об этом не подумал, это функция на p5, и подумал, что она может сработать*

Документация:

https://github.com/processing/p5.js/blob/0.7.3/src/math/calculation.js#L76