EPSG guidance note #7-2, http://www.epsg.org
For a viewing point height approaching or at infinity, see the Vertical Perspective (orthographic case) (method code 9839).
Note: These formulas have been transcribed from EPSG Guidance Note #7-2. Users are encouraged to use that document rather than the text which follows as reference because limitations in the transcription will be avoided. This general case deals with a viewing point at a finite height hv above the origin. If the viewing point is at infinity, the formulas for the orthographic case (method code 9839) should be used. The forward equations for the Vertical Perspective to convert geographical 3D coordinates (lat, lon, h) to Easting (E) and Northing (N) begin with the formulas of thje Geographic/topocentric conversions method (code 9836) to convert the geographical coordinates to topocentric coordinates U, V, W. The perspective projection origin is coincident with the topographic origin and has coordinates (latO, lonO, hO). U = (nu + h) cos P sin (L – Lo) V = (nu + h) [sin P cos Po – cos P sin Po cos (L – Lo)] + e^2 (nuO sin Po – nu sin P ) cos Po W = (nu + h) [sin P sin Po + cos P cos Po cos (L – Lo)] + e^2 (nuO sin Po – nu sin P ) sin Po – (nuO – ho) Then, given the height hv of the perspective viewing point above the origin, the perspective coordinates (E, N) are calculated from topocentric coordinates (U, V, W) as: E = U * hv / (hv – W) N = V * hv / (hv – W) The reverse calculation from E,N to U,V,W and lat,lon,h is indeterminate.