onCameraMove exists, but our main map needs an event after movement finishes, equivalent to onRegionChangeComplete, to load/filter visible markers without noisy continuous updates.