maplibre-rs
maplibre-rs copied to clipboard
Increase coords consistency and clamp zoom level to numerically feasible range
- Clamp the integer
ZoomLevelto0..31when converted from floating pointZoom - Restrict traversal of
WorldTileCoordsto supported zoom level range - Construct QuadKey with the
morton_encodingcrate. This change is here because the previous QuadKey depended on the ZoomLevel type.
Fixes crash from #161 by making the "backend" more robust.
Does not implemented the desired zoom limit. This is done in #180
💻 Examples
You can arbitrarily zoom in/out in the demo without panic.
🚨 Test instructions
Launch demo and start zooming :)
✔️ PR Todo
I am not satisfied with these points yet and lack the domain knowledge to proceed:
- [ ] Check
get_childrenusage in renderer - [ ] Properly handle signedness of
WorldTileCoords - [ ] Check if saturation in
ViewRegion::iteris the correct way to go
Did you verify by running this?
Yes. Works on my Windows 10 machine.
Format can be fixed with just fmt
Rebased on main, and cargo fmt-ed it
@terrorfisch I updated this to the lastest main. If you want to go over it again, then I can review this one.
Regardin the morton-encoding dependency: I think it would be nice to include the efficiency aspect (compiled down to 20 instructions) in the source code as comment.
@terrorfisch Same here, I would still love to merge this :)