#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