Removed the updateCamera() call from onPositionChanged. Previously,
every gesture-driven pan/zoom frame updated the provider state, which
triggered ref.listen to call _mapController.move() redundantly.
This caused flutter_map's TileLayer to cancel in-flight tile loads
on every frame — producing partially-rendered maps and crashes when
zooming out during tile loading.
The ref.listen now only fires for programmatic changes (locateUser,
zoomIn/zoomOut), which are infrequent single-shot moves.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>