package Ġde . iron jan . ar ion av _ fw . samples . tour ism . views Ċ Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġde . iron jan . ar ion av _ fw . ion av . custom _ view _ mv vm . Model D riven Ui Component Ċ import Ġde . iron jan . ar ion av _ fw . ion av . model . osm . Node Ċ import Ġde . iron jan . ar ion av _ fw . samples . tour ism . view model . Tour ism ViewModel Ċ import Ġorg . osc im . android . canvas . Android Graphics Ċ import Ġorg . osc im . core . Geo Point Ċ import Ġorg . osc im . layers . marker . Item ized Layer Ċ import Ġorg . osc im . layers . marker . Marker Item Ċ import Ġorg . osc im . layers . marker . Marker Symbol ĊĊ Ċ class ĠPo i Layer ( map : Ġorg . osc im . map . Map , Ġmarker Drawable : ĠDrawable ) Ġ: ĠItem ized Layer < Marker Item >( map , ĠMarker Symbol ( Android Graphics . drawable To Bitmap ( marker Drawable ), Ġ 0 . 5 f , Ġ 1 f )), ĊĠĠĠ ĠModel D riven Ui Component < Tour ism ViewModel > Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠT our ism ViewModel ĊĊĠĠĠ Ġoverride Ġfun Ġobserve ( viewModel : ĠT our ism ViewModel , Ġlifecycle Owner : ĠLifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . viewModel Ġ= ĠviewModel ĊĊĊĠĠĠĠĠĠĠ ĠviewModel . pois . observe ( lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Markers ( it ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Markers ( dest inations : ĠMap < String , ĠNode >) Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Markers () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( dest inations . isNull OrEmpty ()) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġdest inations . values . forEach Ġ{ Ġadd Item ( create Marker Item ( it )) Ġ} ĊĊĠĠĠĠĠĠĠ Ġmap (). update Map ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Markers () Ġ{ ĊĠĠĠĠĠĠĠ Ġremove All Items () ĊĠĠĠĠĠĠĠ Ġmap (). update Map ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Marker Item ( it : ĠNode ): ĠMarker Item Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġit . tags . map Ġ{ Ġt Ġ-> Ġ"${ t . key } Ġ= Ġ${ t . value }" Ġ}. join ToString ("\ n ") ĊĠĠĠĠĠĠĠ Ġval Ġmarker Item Ġ= ĠMarker Item ( it . name , Ġdescription , ĠGeo Point ( it . lat , Ġit . lon )) ĊĠĠĠĠĠĠĠ Ġreturn Ġmarker Item ĊĠĠĠ Ġ} Ċ }