import Ġkotlin . math . absolute Value Ċ Ċ enum Ġclass ĠLat itude Category ( val Ġlatitude : ĠDouble ) Ġ{ ĊĠĠĠ ĠC ATEG ORY _ 1 ( 4 8 . 0 ), ĊĠĠĠ ĠC ATEG ORY _ 2 ( 6 6 . 0 ), ĊĠĠĠ ĠC ATEG ORY _ 3 ( 9 0 . 0 ) Ċ } Ċ Ċ data Ġclass ĠLocation Ġ( ĊĠĠĠ Ġval Ġname : ĠString Ġ= Ġ" M akk ah ", ĊĠĠĠ Ġval Ġlatitude : ĠDouble Ġ= ĠM AK K AH _ LAT IT UDE , ĊĠĠĠ Ġval Ġlongitude : ĠDouble Ġ= ĠM AK K AH _ LONG IT UDE , ĊĠĠĠ Ġval Ġalt itude : ĠDouble Ġ= ĠM AK K AH _ ALT IT UDE , ĊĠĠĠ Ġval Ġtime Zone : ĠDouble Ġ= ĠM AK K AH _ TIME ZONE , Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGPS ĠCoordinates Ġof Ġthe ĠK a ' b ah Ġ- Ġhttps :// www . gps - coordinates . net / ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠM AK K AH _ LAT IT UDE Ġ= Ġ 2 1 . 4 2 2 4 1 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠM AK K AH _ LONG IT UDE Ġ= Ġ 3 9 . 8 2 6 2 1 8 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠM AK K AH _ ALT IT UDE Ġ= Ġ 3 0 4 . 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠM AK K AH _ TIME ZONE Ġ= Ġ 3 . 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġlatitude Category : ĠLat itude Category Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġlatitude . absolute Value Ġ<= ĠLat itude Category . CATEGORY _ 1 . latitude Ġ-> ĠLat itude Category . CATEGORY _ 1 ĊĠĠĠĠĠĠĠ Ġlatitude . absolute Value Ġ<= ĠLat itude Category . CATEGORY _ 2 . latitude Ġ-> ĠLat itude Category . CATEGORY _ 2 ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠLat itude Category . CATEGORY _ 3 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclosest Location For Ext reme Latitude s () Ġ: ĠLocation Ġ= Ġwhen ( latitude Category ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLat itude Category . CATEGORY _ 1 Ġ-> ĠLocation ( name , Ġlatitude , Ġlongitude , Ġalt itude , Ġtime Zone ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠLocation ( name , ĠLat itude Category . CATEGORY _ 1 . latitude , Ġlongitude , Ġalt itude , Ġtime Zone ) ĊĠĠĠ Ġ} Ċ }