Move too fast when closer to terrain surface

I am working on my orbital flight simulator to render planets. I have only problem with controls. When closer to street-level terrain, move too fast by using keyboard or mouse controls to drag surface. I searched speed-control techniques through many books but can’t find any source to slow move movement. For example, drag map on Google map at different altitude levels (at exponential speed rate).

Also I have another question for you about dolly motion (move toward or from surface at exponential rate). That is similar like in “Powers of Ten” movie that we watched at physics class.

Does anyone have any good example for coding?

I have no code.
The dx, dy coordinates you produce with say the mouse on_drag() is in screen-space. How do you transform them? There’s a long way back to model or model-view space. Both glu and glm provides a look_at() function to create a model-view matrix. The lookAt() needs camera and model coordinates … maybe you can use the perspective divide to ‘temper’ dx, dy, or the distance between camera & model to scale them appropriately.