package Ġpl . jak ub ok ras a . b iker out es . features . segments . presentation Ċ Ċ import Ġorg . os md roid . util . Geo Point Ċ import Ġpl . jak ub ok ras a . b iker out es . core . base . presentation . Helper Ċ import Ġpl . jak ub ok ras a . b iker out es . features . map . domain . model . Point Ċ Ċ class ĠGet Segment Point Helper : ĠHelper < Int , ĠGet Segment Begin Data >() Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġaction ( params : ĠGet Segment Begin Data ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmin Distance Ġ= ĠMIN IMUM _ DISTANCE _ INITIAL _ VALUE ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Distance Ġ= Ġ- 1 . 0 ĊĠĠĠĠĠĠĠ Ġvar Ġbegin Point Index Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġval Ġthreshold Distance Ġ= ĠDIST ANCE _ CO EFF IC IENT _ A Ġ* Ġparams . zoom Level Ġ+ ĠDIST ANCE _ CO EFF IC IENT _ B ĊĊĠĠĠĠĠĠĠ Ġwith ( params ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġpoints . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Distance Ġ= Ġparams . geo Point . distance To As Double ( Geo Point ( points [ i ]. geo Point Data . latitude , Ġpoints [ i ]. geo Point Data . longitude )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( current Distance < min Distance ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Distance Ġ= Ġcurrent Distance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( min Distance Ġ< Ġthreshold Distance ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbegin Point Index Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif ( begin Point Index ! =- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbegin Point Index ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Tap Ġoutside Ġroute ") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDIST ANCE _ CO EFF IC IENT _ A Ġ= Ġ- 2 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDIST ANCE _ CO EFF IC IENT _ B Ġ= Ġ 3 6 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMIN IMUM _ DISTANCE _ INITIAL _ VALUE Ġ= ĠDIST ANCE _ CO EFF IC IENT _ B . toDouble () ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ data Ġclass ĠGet Segment Begin Data ( ĊĠĠĠ Ġval Ġgeo Point : ĠGeo Point , ĊĠĠĠ Ġval Ġpoints : ĠList < Point >, ĊĠĠĠ Ġval Ġzoom Level : ĠDouble Ċ )