Distance to Horizon Calculator

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.

Your eye height above the surface you are standing on. If you are on a hill, use your eye height above the local ground plus the hill height above sea level only if the surface is roughly level around you.
Tip: 1.7 m is about 5.6 ft (eye height for an adult). Put your best estimate.
Choose Earth or enter a custom radius. Radius is the distance from the center to the surface (assumed spherical).
Atmosphere model
No refraction means straight light rays. Standard refraction is a common approximation that slightly increases horizon distance by using an effective Earth radius factor (k).
Choose the main unit used for reported distances (km, miles, nautical miles, meters).
Advanced options
Body radius
Used only if Body = Custom. For Earth, a common mean radius is about 6,371,008.8 meters.
Refraction setting
Used only for Standard refraction or Custom k. A common standard approximation is k = 7/6, meaning refraction acts like Earth is larger, so the horizon is farther.
Note: choosing Standard refraction forces k to 7/6 for the calculation.
Which distance to report
Surface distance is the arc length along the surface to the horizon point. Line-of-sight distance is the straight-line distance from your eye to the horizon point. For small heights, they are very close.
Target object visibility
Include target object visibility
Turn on to check if the top of a distant object can be seen over the curvature, based on observer height and target height.
Calculating…
Horizon dip angle (degrees)
How far below perfectly horizontal the horizon appears in this sphere model.
Radius used in calculation
If refraction is on, this is R_effective = k * R.
Small-height approximation check (difference)
Exact line-of-sight formula minus sqrt(2*R_eff*h).
Did we solve your problem today?

How to use our Distance to Horizon Calculator

  1. Enter your eye height in "Observer height above surface" and pick the correct height unit.
  2. Choose the "Body" (Earth or Custom). If you pick Custom, open Advanced options and enter the custom radius and its unit.
  3. Pick an "Atmosphere model": use "No refraction" for pure geometry, or a refraction option to see a slightly farther (apparent) horizon.
  4. 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).
  5. (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).
  6. (Optional) Turn "Include target object visibility" to On, then enter the target distance (along the surface) and the target height, with their units.
  7. Pick an "Output distance unit" (km, miles, nautical miles, or meters).
  8. 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.


Sources