Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does mapbox gl support maxBounds property? #1538

Closed
bmehta opened this issue Sep 23, 2015 · 5 comments
Closed

Does mapbox gl support maxBounds property? #1538

bmehta opened this issue Sep 23, 2015 · 5 comments
Assignees
Labels

Comments

@bmehta
Copy link

bmehta commented Sep 23, 2015

I am trying to use maxBounds with minZoom and maxZoom when initializing a map. See fiddle at https://jsfiddle.net/1Lv258e7/

Unfortunately I see the stacktrace below. What am I missing?

Uncaught RangeError: Maximum call stack size exceeded22.Transform.latY @ transform.js:13122.Transform._constrain @ transform.js:299zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317
9transform.js:132 Uncaught RangeError: Maximum call stack size exceeded22.Transform.latY @ transform.js:13222.Transform._constrain @ transform.js:299zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317zoom @ transform.js:9122.Transform._constrain @ transform.js:317

@tmcw
Copy link
Contributor

tmcw commented Sep 23, 2015

Ah, since zoom is a setter and calls _constrain, constrain triggers an infinite loop.

@tmcw tmcw added the bug 🐞 label Sep 23, 2015
@bmehta
Copy link
Author

bmehta commented Sep 23, 2015

Any quick pointers for me so I can atleast fix locally and move forward till the bug is fixed?

@mourner mourner self-assigned this Sep 24, 2015
@mourner
Copy link
Member

mourner commented Sep 24, 2015

Looking into it.

@mourner
Copy link
Member

mourner commented Sep 24, 2015

Fixed the infinite loop. Note that in your JSFiddle, the bounds are very small and in the middle of the ocean, so they're not quite compatible with your min/maxZoom.

@bmehta
Copy link
Author

bmehta commented Sep 24, 2015

Thanks a lot for fixing.
Is there a way to pre-calculate the min/max zoom based on the bounds?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants