Distancia del punto wgs de un segmento de línea definido wgs

Busqué pero no pude encontrar una respuesta completa. En C # si es posible. Necesito la distancia más corta entre un punto WGS y un segmento de línea definido por un punto WGS en una esfera (exactamente en la Tierra).

<code>float DistanceInKilometres(PointF LineStartA, PointF LineEndB, PointF ThePoint)
</code>

EDITAR: Tal vez una ilustración ayudaría

Tenga en cuenta que este es un ejemplo ideal. 'El punto' podría estar en cualquier lugar de la superficie de la esfera, el segmento de inicio y fin, también. Obviamente, no estoy buscando la distancia a través de la esfera. Las matemáticas no son mi lado más fuerte, así que no entiendonormalizar oa cartesiano. Tal vez también debería tener en cuenta que la ruta AB, es la más corta posible, y la Distancia, también es la más corta posible.

Respuestas a la pregunta(2)

Su respuesta a la pregunta