package Ġnet . g mx . one byte . t tn mapper Ċ Ċ private Ġconst Ġval ĠW GS 8 4 _ A Ġ= Ġ 6 3 7 8 1 3 7 . 0 Ċ private Ġconst Ġval ĠW GS 8 4 _ E 2 Ġ= Ġ 6 . 6 9 4 3 7 9 9 9 0 1 3 7 7 9 9 7 e - 3 ; Ċ Ċ data Ġclass ĠPoint ( val Ġx : ĠDouble , Ġval Ġy : ĠDouble , Ġval Ġz : ĠDouble ) Ġ{ ĊĠĠĠ Ġfun Ġdistance To ( other : ĠPoint ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMath . sqrt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( x Ġ- Ġother . x ) Ġ* Ġ( x Ġ- Ġother . x ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( y Ġ- Ġother . y ) Ġ* Ġ( y Ġ- Ġother . y ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( z Ġ- Ġother . z ) Ġ* Ġ( z Ġ- Ġother . z ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠLocation ( val Ġlatitude : ĠDouble , Ġval Ġlongitude : ĠDouble , Ġval Ġalt itude : ĠDouble ) Ġ{ ĊĠĠĠ Ġfun Ġdistance To ( other : ĠLocation ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġto E cef (). distance To ( other . to E cef ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto E cef (): ĠPoint Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlatitude Sin Ġ= ĠMath . sin ( Math . to Radians ( latitude )) ĊĠĠĠĠĠĠĠ Ġval Ġlatitude Cos Ġ= ĠMath . cos ( Math . to Radians ( latitude )) ĊĠĠĠĠĠĠĠ Ġval Ġn Ġ= ĠW GS 8 4 _ A Ġ/ ĠMath . sqrt ( 1 Ġ- ĠW GS 8 4 _ E 2 Ġ* Ġlatitude Sin Ġ* Ġlatitude Sin ) ĊĠĠĠĠĠĠĠ Ġreturn ĠPoint ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( n Ġ+ Ġalt itude ) Ġ* Ġlatitude Cos Ġ* ĠMath . cos ( Math . to Radians ( longitude )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( n Ġ+ Ġalt itude ) Ġ* Ġlatitude Cos Ġ* ĠMath . sin ( Math . to Radians ( longitude )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( n Ġ* Ġ( 1 Ġ- ĠW GS 8 4 _ E 2 ) Ġ+ Ġalt itude ) Ġ* Ġlatitude Sin ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }