Enter your height above the surface to calculate how far the horizon is on Earth (or a custom sphere), with results shown as both surface distance and straight line-of-sight distance. You can also turn on a refraction model and check whether the top of a distant object should be visible.
Advanced options
How to use our Distance to Horizon Calculator
- Enter your eye height in "Observer height above surface" and pick the correct height unit.
- Choose the "Body" (Earth or Custom). If you pick Custom, open Advanced options and enter the custom radius and its unit.
- Pick an "Atmosphere model": use "No refraction" for pure geometry, or a refraction option to see a slightly farther (apparent) horizon.
- If you use a refraction option that needs it, open Advanced options and set the effective radius factor k (k must be greater than 0).
- (Optional) In Advanced options, choose a "Distance definition" if you care whether the distance is along the surface (arc) or straight-line (line-of-sight).
- (Optional) Turn "Include target object visibility" to On, then enter the target distance (along the surface) and the target height, with their units.
- Pick an "Output distance unit" (km, miles, nautical miles, or meters).
- Click Calculate and read the results: horizon distances, dip angle, the effective radius used, and (if enabled) target visibility, max range, and margin.
Definitions
Horizon: The point where the surface curves away enough that a straight line from your eye just touches (is tangent to) the surface.
Body radius (R): The distance from the center of the planet to its surface, assuming a perfect sphere.
Observer height (h): Your eye height above the surface at your location (in the unit you select).
Line-of-sight distance: The straight-line distance from your eye to the horizon point.
Surface distance (arc length): The distance along the ground or water to the horizon point.
Refraction: Bending of light in the atmosphere, which can let you see a little farther than the no-air geometry predicts [1].
Effective Earth radius factor (k): A shortcut that models refraction by using an effective radius R_eff = k times R, where k = 1 means no refraction.
Dip angle: How far below perfectly level (horizontal) the horizon appears, measured in degrees.
Methodology
1) Units and chosen radius
All calculations are done in meters, then converted to your chosen output unit (SI base length is the meter) [2].
R = 6,371,008.8 m (Earth mean radius) or R = custom radius
h = observer height converted to meters
2) Atmosphere model (effective radius)
If refraction is enabled, this calculator uses the common effective-radius shortcut described in many horizon explanations [1].
R_eff = k * R
k = 1 for no refraction; for a standard approximation, k = 7/6
3) Exact geometric horizon distances
Using tangent geometry on a sphere, the straight-line (line-of-sight) distance from the observer to the horizon point is:
d_los = sqrt((R_eff + h)^2 - R_eff^2) = sqrt(2*R_eff*h + h^2)
The surface (arc) distance to the same horizon point uses the central angle theta:
theta = acos(R_eff/(R_eff + h))
d_surface = R_eff * theta
4) Dip angle
This uses the same angle as above (the horizon is slightly below level for a raised observer):
dip_rad = acos(R_eff/(R_eff + h))
dip_deg = dip_rad * 180/pi
5) Small-height approximation check
When height is tiny compared to the radius, a common shortcut is:
d_approx = sqrt(2*R_eff*h)
The calculator reports the difference (exact minus approximate) in your output distance unit so you can see whether the shortcut is close for your inputs [1].
6) Target visibility (optional simplified model)
If target mode is On, the calculator estimates the maximum surface separation where the top of the target could be visible by adding the two horizon arc distances (observer and target top), using the same R_eff:
d_limit = d_surface(h_obs) + d_surface(h_tgt)
margin = d_limit - d_target
If margin is positive, the model says the top is visible; if margin is negative, curvature blocks it in this simplified model. This ignores terrain, waves, and real day-to-day refraction changes.
7) Validation and safe math
Blocked errors: observer height must be greater than 0; radius must be greater than 0; k must be greater than 0 when used; in target mode, target distance must be 0 or more and target height must be 0 or more. For acos(x), x is clamped to [-1, 1] only when floating-point rounding makes it barely outside the range; otherwise invalid inputs are rejected.