package Ġcom . dev . fi . maps Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . be ust . kl ax on . Kl ax on Ċ import Ġcom . google . android . gms . maps . Camera Update Factory Ċ import Ġcom . google . android . gms . maps . Google Map Ċ import Ġcom . google . android . gms . maps . On Map Ready Callback Ċ import Ġcom . google . android . gms . maps . Support Map Fragment Ċ import Ġcom . google . android . gms . maps . model .* Ċ import Ġcom . google . maps . android . data . geojson . Geo Json Layer Ċ import Ġcom . google . maps . android . data . geojson . Geo Json Polygon Style Ċ import Ġcom . or h ano but . logger . Logger Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject ĊĊ Ċ class ĠMaps Activity Ġ: ĠAppCompatActivity (), ĊĠĠĠĠĠĠĠ ĠOn Map Ready Callback , ĊĠĠĠĠĠĠĠ ĠGoogle Map . On Polyline ClickListener , ĊĠĠĠĠĠĠĠ ĠGoogle Map . On Polygon ClickListener , ĊĠĠĠĠĠĠĠ ĠMaps View Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlist LatLng Ġ= Ġmutable ListOf < LatLng >() ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgeo Json Ġ: ĠGeo Json ĊĊĠĠĠ Ġoverride Ġfun Ġon Process () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// do Ġprocess ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Result ( response : ĠResponse Model . Routes Response ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠObtain Ġthe ĠSupport Map Fragment Ġand Ġget Ġnotified Ġwhen Ġthe Ġmap Ġis Ġready Ġto Ġbe Ġused . ĊĠĠĠĠĠĠĠ Ġval Ġmap Fragment Ġ= Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Fragment ById ( R . id . map ) Ġas ĠSupport Map Fragment ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġresponse . routes ?. get ( 0 )?. leg s ?. get ( 0 )?. steps ?. size !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlag Ġ= Ġresponse . routes ?. get ( 0 )?. leg s ?. get ( 0 )?. steps ?. get ( i )?. start _ location ?. lng !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlat Ġ= Ġresponse . routes ?. get ( 0 )?. leg s ?. get ( 0 )?. steps ?. get ( i )?. start _ location ?. lat !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist LatLng . add ( LatLng ( lat , Ġlag )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmap Fragment . getMap Async ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Error ( string : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġerror ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpresenter : ĠMaps Presenter ĊĊĠĠĠ Ġoverride Ġfun Ġon Polyline Click ( p 0 : ĠPoly line ?) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Polygon Click ( p 0 : ĠPolygon ?) Ġ{} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Map : ĠGoogle Map ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ maps ) ĊĊĠĠĠĠĠĠĠ Ġpresenter Ġ= ĠMaps Presenter ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġhash map Ġ= ĠLinkedHashMap < String , ĠString ?> () ĊĠĠĠĠĠĠĠ Ġhash map [" origin "] Ġ= Ġ"- 5 . 1 0 2 6 0 6 , 1 1 9 . 5 2 8 8 7 4 " ĊĠĠĠĠĠĠĠ Ġhash map [" destination "] Ġ= Ġ"- 5 . 1 7 1 5 4 7 , 1 1 9 . 4 3 2 4 6 2 " ĊĠĠĠĠĠĠĠ Ġhash map [" avoid "] Ġ= Ġ" high ways " ĊĠĠĠĠĠĠĠ Ġhash map [" mode "] Ġ= Ġ" d riving " ĊĠĠĠĠĠĠĠ Ġhash map [" key "] Ġ= Ġ" AI za Sy CB 3 G 3 W Cb _ g H - 4 gf Xa Pu 7 y Kc AP 1 Rb Bb M 0 k " ĊĊĠĠĠĠĠĠĠ Ġpresenter . get Routes ( hash map ) ĊĊĠĠĠĠĠĠĠ Ġgeo Json Ġ= ĠK l ax on (). parse < Geo Json >( resources . open Raw Resource ( R . raw . p am as uka _ subs )) !! ĊĠĠĠĠĠĠĠ ĠLogger . d ( geo Json ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( google Map : ĠGoogle Map ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgeo Json Ġ= ĠGeo Json Layer ( google Map , ĠR . raw . p am as uka _ subs , Ġthis ) ĊĠĠĠĠĠĠĠ Ġval Ġpolygon Style Ġ= Ġgeo Json . default Polygon Style ĊĠĠĠĠĠĠĠ Ġpolygon Style . fill Color Ġ= ĠColor . RED ĊĊĊĠĠĠĠĠĠĠ Ġgeo Json . add Layer ToMap () ĊĊĠĠĠĠĠĠĠ Ġgeo Json . setOn Feature ClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . d ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ