package Ġcom . ar os y adi . o il sp ill Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics .* Ċ import Ġandroid . os . AsyncTask Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Persist able Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġcom . mapbox . geojson . Feature Ċ import Ġcom . mapbox . geojson . Feature Collection Ċ import Ġcom . mapbox . geojson . Point Ċ import Ġcom . mapbox . mapbox sdk . Map box Ċ import Ġcom . mapbox . mapbox sdk . annotations . Bubble Layout Ċ import Ġcom . mapbox . mapbox sdk . geometry . LatLng Ċ import Ġcom . mapbox . mapbox sdk . maps . Map box Map Ċ import Ġcom . mapbox . mapbox sdk . maps . On Map Ready Callback Ċ import Ġcom . mapbox . mapbox sdk . maps . Style Ċ import Ġcom . mapbox . mapbox sdk . style . expressions . Expression .* Ċ import Ġcom . mapbox . mapbox sdk . style . layers . Property .* Ċ import Ġcom . mapbox . mapbox sdk . style . layers . Property Factory .* Ċ import Ġcom . mapbox . mapbox sdk . style . layers . Symbol Layer Ċ import Ġcom . mapbox . mapbox sdk . style . sources . Geo Json Source Ċ import Ġkotlinx . android . synt hetic . main . activity _ maps .* Ċ import Ġjava . io . InputStream Ċ import Ġjava . lang . ref . Weak Reference Ċ import Ġjava . net . UR ISyntaxException Ċ import Ġjava . nio . charset . Charset ĊĊ Ċ class ĠMaps Activity Ġ: ĠAppCompatActivity (), ĠOn Map Ready Callback , ĠMap box Map . On Map ClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠSOURCE _ ID Ġ= Ġ" SOURCE _ ID " ĊĠĠĠ Ġprivate Ġval ĠICON _ ID Ġ= Ġ" ICON _ ID " ĊĠĠĠ Ġprivate Ġval ĠLAY ER _ ID Ġ= Ġ" LAYER _ ID " ĊĠĠĠ Ġprivate Ġvar Ġlatitude Ġ= Ġ 0 . 0 ĊĠĠĠ Ġprivate Ġvar Ġlongitude Ġ= Ġ 0 . 0 ĊĠĠĠ Ġprivate Ġvar Ġname Ġ= Ġ"" ĊĊĠĠĠ Ġprivate Ġval ĠGEO JSON _ SRC _ ID Ġ= Ġ" poi _ source _ id " ĊĠĠĠ Ġprivate Ġval ĠPO I _ LABEL S _ LAYER _ ID Ġ= Ġ" poi _ labels _ layer _ id " ĊĊĠĠĠ Ġprivate Ġval ĠMARK ER _ IMAGE _ ID Ġ= Ġ" MARKER _ IMAGE _ ID " ĊĠĠĠ Ġprivate Ġval ĠMARK ER _ LAYER _ ID Ġ= Ġ" MARKER _ LAYER _ ID " ĊĠĠĠ Ġprivate Ġval ĠCAL LO UT _ LAYER _ ID Ġ= Ġ" CAL LO UT _ LAYER _ ID " ĊĠĠĠ Ġprivate Ġval ĠPROPERTY _ SELECTED Ġ= Ġ" selected " ĊĠĠĠ Ġprivate Ġval ĠPROPERTY _ NAME Ġ= Ġ" name " ĊĠĠĠ Ġprivate Ġval ĠPROPERTY _ CAP ITAL Ġ= Ġ" capital " ĊĊĠĠĠ Ġprivate Ġvar Ġgeo Json Source : ĠGeo Json Source ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmap box Map : ĠMap box Map ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfeature Collection : ĠFeature Collection ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġintent . extras ĊĊĠĠĠĠĠĠĠ Ġlatitude Ġ= Ġbundle ?. getDouble (" lat ") Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġlatitude Ġ= Ġbundle ?. getDouble (" long ") Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġbundle ?. getString (" name ") Ġ?: Ġ" BLANK K " ĊĊĊĠĠĠĠĠĠĠ Ġ// ĠMap box Ġaccess Ġtoken Ġis Ġconfigured Ġhere . ĠThis Ġneeds Ġto Ġbe Ġcalled Ġeither Ġin Ġyour Ġapplication ĊĠĠĠĠĠĠĠ Ġ// Ġobject Ġor Ġin Ġthe Ġsame Ġactivity Ġwhich Ġcontains Ġthe Ġmap view . ĊĠĠĠĠĠĠĠ ĠMap box . getInstance ( this , ĠgetString ( R . string . mapbox _ access _ token )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġcontains Ġthe ĠMap View Ġin ĠXML Ġand Ġneeds Ġto Ġbe Ġcalled Ġafter Ġthe Ġaccess Ġtoken Ġis Ġconfigured . ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ maps ) ĊĠĠĠĠĠĠĠ Ġsetup Toolbar Properties ( toolbar _ stock , Ġname ) ĊĠĠĠĠĠĠĠ Ġtv _ tool b art itle . text Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġmap View . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġmap View . getMap Async ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup Toolbar Properties ( ĊĠĠĠĠĠĠĠ Ġtoolbar Id : ĠToolbar , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( this ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport ActionBar ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar Id . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Display Show Home Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠAdd Ġthe Ġmap View Ġlifecycle Ġto Ġthe Ġactivity 's Ġlifecycle Ġmethods ĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġmap View . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġmap View . onStart () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġmap View . on Stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġmap View . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Low Memory () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Low Memory () ĊĠĠĠĠĠĠĠ Ġmap View . on Low Memory () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġmap box Map ?. remove On Map ClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġmap View . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle , Ġout Persistent State : ĠPers ist able Bundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State , Ġout Persistent State ) ĊĠĠĠĠĠĠĠ Ġmap View . on Save InstanceState ( out State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( mapbox Map : ĠMap box Map ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mapbox Map Ġ= Ġmap box Map ĊĊ Ċ // ĠĠĠĠĠĠĠ Ġmap box Map . setStyle ( Style . MAP BOX _ STRE ETS ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLoad Geo Json Data Task ( this ). execute () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmap box Map . add On Map ClickListener ( this ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġval Ġsymbol Layer Icon Feature List : ĠMutable List < Feature > Ġ= ĠArrayList () Ċ // ĠĠĠĠĠĠĠ Ġsymbol Layer Icon Feature List . add ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠFeature . from Geometry ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint . from Lng Lat ( latitude , Ġlongitude ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġtry Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġgeo Json Source Ġ= ĠGeo Json Source ( GEO JSON _ SRC _ ID , ĠFeature Collection . from Features ( symbol Layer Icon Feature List )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmap box Map . setStyle ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStyle . Builder () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from Uri (" mapbox :// styles / mapbox / c jf 4 m 4 4 iw 0 u za 2 spb 3 q 0 a 7 s 4 1 ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Layer ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSymbol Layer ( PO I _ LABEL S _ LAYER _ ID , ĠGEO JSON _ SRC _ ID ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Properties ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field ( name ), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size ( 1 7 f ), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Variable Anchor ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTEXT _ AN CH OR _ TOP , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTEXT _ AN CH OR _ BOTTOM , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTEXT _ AN CH OR _ LEFT , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTEXT _ AN CH OR _ RIGHT Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Just ify ( TEXT _ JUST IFY _ AUTO ), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Rad ial Offset ( 0 . 5 f ) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Image ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠICON _ ID , ĠBitmap Factory . decode Resource ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . resources , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . mapbox _ marker _ icon _ default )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Source ( geo Json Source !! ) Ġ// ĠAdds Ġa ĠSymbol Layer Ġto Ġdisplay ĠPO I Ġlabels Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cek ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠUR ISyntaxException ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" exception Ġ: ", Ġexception . toString ()) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// TODO : ĊĊĠĠĠĠĠĠĠ Ġval Ġsymbol Layer Icon Feature List : ĠMutable List < Feature > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġsymbol Layer Icon Feature List . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFeature . from Geometry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint . from Lng Lat ( latitude , Ġlongitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġmap box Map . setStyle ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStyle . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from Uri (" mapbox :// styles / mapbox / c jf 4 m 4 4 iw 0 u za 2 spb 3 q 0 a 7 s 4 1 ") Ġ// ĠAdd Ġthe ĠSymbol Layer Ġicon Ġimage Ġto Ġthe Ġmap Ġstyle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Image ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠICON _ ID , ĠBitmap Factory . decode Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . resources , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . mapbox _ marker _ icon _ default ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ// ĠAdding Ġa ĠGeo Json Ġsource Ġfor Ġthe ĠSymbol Layer Ġicons . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Source ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGeo Json Source ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSOURCE _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFeature Collection . from Features ( symbol Layer Icon Feature List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ// ĠAdding Ġthe Ġactual ĠSymbol Layer Ġto Ġthe Ġmap Ġstyle . ĠAn Ġoffset Ġis Ġadded Ġthat Ġthe Ġbottom Ġof Ġthe Ġred ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmarker Ġicon Ġgets Ġfixed Ġto Ġthe Ġcoordinate , Ġrather Ġthan Ġthe Ġmiddle Ġof Ġthe Ġicon Ġbeing Ġfixed Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthe Ġcoordinate Ġpoint . ĠThis Ġis Ġoffset Ġis Ġnot Ġalways Ġneeded Ġand Ġis Ġdependent Ġon Ġthe Ġimage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthat Ġyou Ġuse Ġfor Ġthe ĠSymbol Layer Ġicon . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Layer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSymbol Layer ( LAYER _ ID , ĠSOURCE _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Properties ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Image ( ICON _ ID ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Allow Overlap ( true ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ignore Placement ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMap Ġis Ġset Ġup Ġand Ġthe Ġstyle Ġhas Ġloaded . ĠNow Ġyou Ġcan Ġadd Ġadditional Ġdata Ġor Ġmake Ġother Ġmap Ġadjust ments . ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Map Click ( point : ĠLat Lng ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhandle Click Icon ( mapbox Map ?. projection ?. to Screen Location ( point )); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetUp Data ( collection : ĠFeature Collection ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfeature Collection Ġ= Ġcollection ĊĠĠĠĠĠĠĠ Ġmap box Map ?. getStyle Ġ{ Ġstyle Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Source ( style ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Image ( style ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Marker Layer ( style ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Info Window Layer ( style ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Source ( loaded Style : ĠStyle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgeo Json Source Ġ= ĠGeo Json Source ( GEO JSON _ SRC _ ID , Ġfeature Collection ) ĊĠĠĠĠĠĠĠ Ġloaded Style . add Source ( geo Json Source !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġthe Ġmarker Ġimage Ġto Ġthe Ġmap Ġfor Ġuse Ġas Ġa ĠSymbol Layer Ġicon ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠsetUp Image ( loaded Style : ĠStyle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġloaded Style . add Image ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMARK ER _ IMAGE _ ID , ĠBitmap Factory . decode Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . resources , ĠR . drawable . mapbox _ marker _ icon _ default ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdates Ġthe Ġdisplay Ġof Ġdata Ġon Ġthe Ġmap Ġafter Ġthe ĠFeature Collection Ġhas Ġbeen Ġmodified ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġrefresh Source () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( geo Json Source Ġ!= Ġnull Ġ&& Ġfeature Collection Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgeo Json Source !!. set Geo Json ( feature Collection ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSetup Ġa Ġlayer Ġwith Ġm aki Ġicons , Ġeg . Ġwest Ġco ast Ġcity . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠsetUp Marker Layer ( loaded Style : ĠStyle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġloaded Style . add Layer ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSymbol Layer ( MARKER _ LAYER _ ID , ĠGEO JSON _ SRC _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Properties ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Image ( MARKER _ IMAGE _ ID ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Allow Overlap ( true ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Offset ( array Of ( 0 f , Ġ- 8 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSetup Ġa Ġlayer Ġwith ĠAndroid ĠSDK Ġcall - outs ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġname Ġof Ġthe Ġfeature Ġis Ġused Ġas Ġkey Ġfor Ġthe Ġicon Image ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠsetUp Info Window Layer ( loaded Style : ĠStyle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġloaded Style . add Layer ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSymbol Layer ( CAL LO UT _ LAYER _ ID , ĠGEO JSON _ SRC _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Properties ( Ġ/* Ġshow Ġimage Ġwith Ġid Ġtitle Ġbased Ġon Ġthe Ġvalue Ġof Ġthe Ġname Ġfeature Ġproperty Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Image ("{ name } "), Ġ Ġ/* Ġset Ġanchor Ġof Ġicon Ġto Ġbottom - left Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Anchor ( ICON _ AN CH OR _ BOTTOM ), Ġ Ġ/* Ġall Ġinfo Ġwindow Ġand Ġmarker Ġimage Ġto Ġappear Ġat Ġthe Ġsame Ġtime */ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Allow Overlap ( true ), Ġ Ġ/* Ġoffset Ġthe Ġinfo Ġwindow Ġto Ġbe Ġabove Ġthe Ġmarker Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Offset ( array Of (- 2 f , Ġ- 2 8 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ/* Ġadd Ġa Ġfilter Ġto Ġshow Ġonly Ġwhen Ġselected Ġfeature Ġproperty Ġis Ġtrue Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Filter ( eq ( get ( PROPERTY _ SELECTED ), Ġliteral ( true ))) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġhandles Ġclick Ġevents Ġfor ĠSymbol Layer Ġsymbols . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠWhen Ġa ĠSymbol Layer Ġicon Ġis Ġclicked , Ġwe Ġmoved Ġthat Ġfeature Ġto Ġthe Ġselected Ġstate . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġscreen Point Ġthe Ġpoint Ġon Ġscreen Ġclicked ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġhandle Click Icon ( screen Point : ĠPoint F ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfeatures : ĠMutable List < Feature ?> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap box Map !!. query Rendered Features ( screen Point !! , ĠMARK ER _ LAYER _ ID ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(! features . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġfeatures [ 0 ] !!. getString Property ( PROPERTY _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfeature List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeature Collection !!. features () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( feature List Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġfeature List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( feature List [ i ] !!. getString Property ( PROPERTY _ NAME ) Ġ== Ġname ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( feature Select Status ( i )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Feature Select State ( feature List [ i ], Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetSelected ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġa Ġfeature Ġselected Ġstate . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġthe Ġindex Ġof Ġselected Ġfeature ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠsetSelected ( index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( feature Collection !!. features () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfeature Ġ= Ġfeature Collection !!. features () ! ![ index ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Feature Select State ( feature , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Source () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSelect s Ġthe Ġstate Ġof Ġa Ġfeature ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfeature Ġthe Ġfeature Ġto Ġbe Ġselected . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Feature Select State ( ĊĠĠĠĠĠĠĠ Ġfeature : ĠFeature ?, ĊĠĠĠĠĠĠĠ Ġselected State : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( feature !!. properties () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeature . properties () !!. addProperty ( PROPERTY _ SELECTED , Ġselected State ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Source () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChecks Ġwhether Ġa ĠFeature 's Ġboolean Ġ" selected " Ġproperty Ġis Ġtrue Ġor Ġfalse ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġthe Ġspecific ĠFeature 's Ġindex Ġposition Ġin Ġthe ĠFeature Collection 's Ġlist Ġof ĠFeatures . ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġ" selected " Ġis Ġtrue . ĠFalse Ġif Ġthe Ġboolean Ġproperty Ġis Ġfalse . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġfeature Select Status ( index : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( feature Collection Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġfeature Collection !!. features () !!. get ( index ). getBoolean Property ( PROPERTY _ SELECTED ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInv oked Ġwhen Ġthe Ġbit maps Ġhave Ġbeen Ġgenerated Ġfrom Ġa Ġview . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Image Gen Results ( image Map : ĠHashMap < String ?, ĠBitmap ?> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġmap box Map ?. getStyle Ġ{ Ġstyle Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcalling Ġadd Images Ġis Ġfaster Ġas Ġseparate Ġadd Image Ġcalls Ġfor Ġeach Ġbitmap . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Map ?. let Ġ{ Ġstyle . add Images ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAsync Task Ġto Ġload Ġdata Ġfrom Ġthe Ġassets Ġfolder . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠLoad Geo Json Data Task Ġinternal Ġconstructor ( activity : ĠMaps Activity ?) Ġ: ĊĠĠĠĠĠĠĠ ĠAsync Task < Void ?, ĠVoid ?, ĠFeature Collection ?> () Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġactivity Ref : ĠWeak Reference < Maps Activity ?> ? ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo In Background ( var arg Ġparams : ĠVoid ?): ĠFeature Collection ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity : ĠMaps Activity Ġ= Ġactivity Ref ?. get () Ġ?: Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbol Layer Icon Feature List : ĠMutable List < Feature > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsymbol Layer Icon Feature List . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFeature . from Geometry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint . from Lng Lat ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġgeo Json Source Ġ= ĠGeo Json Source ( GEO JSON _ SRC _ ID , ĠFeature Collection . from Features ( symbol Layer Icon Feature List )) Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgeo Json Ġ= Ġload Geo Json From Asset ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" us _ west _ co ast . geojson " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFeature Collection . from Features ( symbol Layer Icon Feature List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Post Execute ( feature Collection : ĠFeature Collection ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Post Execute ( feature Collection ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity : ĠMaps Activity ? Ġ= Ġactivity Ref ?. get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( feature Collection Ġ== Ġnull Ġ|| Ġactivity Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠThis Ġexample Ġruns Ġon Ġthe Ġprem ise Ġthat Ġeach ĠGeo JSON ĠFeature Ġhas Ġa Ġ" selected " Ġproperty , Ċ // Ġwith Ġa Ġboolean Ġvalue . ĠIf Ġyour Ġdata 's ĠFeatures Ġdon 't Ġhave Ġthis Ġboolean Ġproperty , Ċ // Ġadd Ġit Ġto Ġthe ĠFeature Collection Ġ' s Ġfeatures Ġwith Ġthe Ġfollowing Ġcode : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( single Feature Ġin Ġfeature Collection . features () !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Feature !!. add Boolean Property ( PROPERTY _ SELECTED , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . setUp Data ( feature Collection ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGenerate View Icon Task ( activity ). execute ( feature Collection ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġload Geo Json From Asset ( context : ĠContext ?, Ġfilename : ĠString ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLoad ĠGeo JSON Ġfile Ġfrom Ġlocal Ġasset Ġfolder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ` is `: ĠInputStream Ġ= Ġfilename ?. let Ġ{ Ġcontext ?. assets ?. open ( it ) Ġ} !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize : ĠInt Ġ= Ġ` is `. available () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer : ĠByteArray Ġ= ĠByteArray ( size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ` is `. read ( buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ` is `. close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString ( buffer , ĠCharset . forName (" UTF - 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Ref Ġ= ĠWeak Reference ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAsync Task Ġto Ġgenerate ĠBitmap Ġfrom ĠViews Ġto Ġbe Ġused Ġas Ġicon Image Ġin Ġa ĠSymbol Layer . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠCall Ġbe Ġoptionally Ġbe Ġcalled Ġto Ġupdate Ġthe Ġunderlying Ġdata Ġsource Ġafter Ġexecution . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠGenerating ĠViews Ġon Ġbackground Ġthread Ġsince Ġwe Ġare Ġnot Ġgoing Ġto Ġbe Ġadding Ġthem Ġto Ġthe Ġview Ġhierarchy . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠGenerate View Icon Task Ġinternal Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġactivity : ĠMaps Activity ?, ĊĠĠĠĠĠĠĠ Ġrefresh Source : ĠBoolean ĊĠĠĠ Ġ) Ġ: ĊĠĠĠĠĠĠĠ ĠAsync Task < Feature Collection ?, ĠVoid ?, ĠHashMap < String ?, ĠBitmap ?> ?> () Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġview Map : ĠHashMap < String ?, ĠView ?> ? Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġactivity Ref : ĠWeak Reference < Maps Activity ?> ? ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrefresh Source : ĠBoolean ĊĊĠĠĠĠĠĠĠ Ġinternal Ġconstructor ( activity : ĠMaps Activity ?) Ġ: Ġthis ( activity , Ġfalse ) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo In Background ( var arg Ġparams : ĠFeature Collection ?): ĠHashMap < String ?, ĠBitmap ?> ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity : ĠMaps Activity ? Ġ= Ġactivity Ref ?. get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( activity Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimages Map : ĠHashMap < String ?, ĠBitmap ?> Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfeature Collection Ġ= Ġparams [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( feature : ĠFeature ? Ġin Ġfeature Collection !!. features () !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbubble Layout Ġ= Ġinflater . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . symbol _ layer _ info _ window _ layout _ callout , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġas ĠB ubble Layout ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġfeature !!. getString Property ( PROPERTY _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle TextView Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbubble Layout !!. findViewById < TextView ? >( R . id . info _ window _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextView !!. text Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstyle Ġ= Ġfeature . getString Property ( PROPERTY _ CAP ITAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription TextView : ĠTextView Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbubble Layout . findViewById ( R . id . info _ window _ description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription TextView . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava . lang . String . format ( activity . getString ( R . string . capital ), Ġstyle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeasure Spec : ĠInt Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . Measure Spec . make Measure Spec ( 0 , ĠView . Measure Spec . UNSPECIFIED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbubble Layout . measure ( measure Spec , Ġmeasure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeasured Width Ġ= Ġbubble Layout . meas ured Width . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbubble Layout . arrow Position Ġ= Ġmeasured Width Ġ/ Ġ 2 Ġ- Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠSymbol Generator . generate ( bubble Layout ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimages Map [ name ] Ġ= Ġbitmap ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Map ! ![ name ] Ġ= Ġbubble Layout ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimages Map ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Post Execute ( bitmap HashMap : ĠHashMap < String ?, ĠBitmap ?> ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Post Execute ( bitmap HashMap ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity : ĠMaps Activity ? Ġ= Ġactivity Ref ?. get () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ!= Ġnull Ġ&& Ġbitmap HashMap Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . setImage Gen Results ( bitmap HashMap ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( refresh Source ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . refresh Source () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġ" cek ", ĠToast . LENGTH _ SHORT ). show () Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Ref Ġ= ĠWeak Reference ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . refresh Source Ġ= Ġrefresh Source ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUtility Ġclass Ġto Ġgenerate ĠBit maps Ġfor ĠSymbol . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġobject ĠSymbol Generator Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠGenerate Ġa ĠBitmap Ġfrom Ġan ĠAndroid ĠSDK ĠView . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Ġthe ĠView Ġto Ġbe Ġdrawn Ġto Ġa ĠBitmap ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġgenerated Ġbitmap ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġgenerate ( view : ĠView ): ĠBitmap ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeasure Spec : ĠInt Ġ= ĠView . Measure Spec . make Measure Spec ( 0 , ĠView . Measure Spec . UNSPECIFIED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . measure ( measure Spec , Ġmeasure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeasured Width : ĠInt Ġ= Ġview . get Measured Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeasured Height : ĠInt Ġ= Ġview . get Measured Height () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . layout ( 0 , Ġ 0 , Ġmeasured Width , Ġmeasured Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap . create Bitmap ( meas ured Width , Ġmeasured Height , ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap !!. erase Color ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcanvas : ĠCanvas Ġ= ĠCanvas ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbitmap ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠGEO JSON _ SRC _ ID Ġ= Ġ" poi _ source _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPO I _ LABEL S _ LAYER _ ID Ġ= Ġ" poi _ labels _ layer _ id " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMARK ER _ IMAGE _ ID Ġ= Ġ" MARKER _ IMAGE _ ID " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMARK ER _ LAYER _ ID Ġ= Ġ" MARKER _ LAYER _ ID " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCAL LO UT _ LAYER _ ID Ġ= Ġ" CAL LO UT _ LAYER _ ID " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPROPERTY _ SELECTED Ġ= Ġ" selected " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPROPERTY _ NAME Ġ= Ġ" name " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPROPERTY _ CAP ITAL Ġ= Ġ" capital " ĊĠĠĠ Ġ} Ċ }