How to know an edge length only in Top Orthographic?
Script version

Would IMO be a bit OTT to dupe n scale just to get the ortho projection length of an edge.  Here is a little test script that projects the edge globally. ie taking into account object transform, onto the XY plane and returns its length

Select an edge in edit mode, run script, prints the edges global projected length to console. (Unmodified, undeformed)


Test run on default cone. Shows radial lengths as 1 as expected

import bpy
import bmesh
from mathutils import Vector


context = bpy.context
ob = context.edit_object
mw = ob.matrix_world
me = ob.data
bm = bmesh.from_edit_mesh(me)
# define plane
plane_no = Vector((0, 0, 1))  # plane normal
plane_co = Vector() # (0, 0, 0) point on plane

e = bm.select_history.active
if isinstance(e, bmesh.types.BMEdge):
    def proj(v):
        return v - (v - plane_co).dot(plane_no) * plane_no
    v1, v2 = [proj(mw @ v.co) for v in e.verts]
    print((v1 - v2).length)


Note could easily extend this to use the 3d view as defining the plane, and overlay the lengths over edges.