/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 - 2 0 1 9 ĠNA VER ĠCorp . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . na ver . maps . map . demo . kotlin . overlay Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Check able Ċ import Ġcom . na ver . maps . geometry . LatLng Ċ import Ġcom . na ver . maps . map . Map Fragment Ċ import Ġcom . na ver . maps . map . N aver Map Ċ import Ġcom . na ver . maps . map . On Map Ready Callback Ċ import Ġcom . na ver . maps . map . demo . R Ċ import Ġcom . na ver . maps . map . overlay . Marker Ċ import Ġcom . na ver . maps . map . util . Marker Icons Ċ import Ġkotlinx . android . synt hetic . main . activity _ marker _ collision .* Ċ import Ġjava . util . ArrayList Ċ Ċ class ĠMarker Collision Activity Ġ: ĠAppCompatActivity (), ĠOn Map Ready Callback Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġforce Show Icon : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ marker _ collision ) ĊĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Display Show Home Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmap Fragment Ġ= Ġsupport FragmentManager . find Fragment ById ( R . id . map _ fragment ) Ġas ĠMap Fragment ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠMap Fragment . newInstance (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). add ( R . id . map _ fragment , Ġit ). commit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmap Fragment . getMap Async ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . itemId Ġ== Ġandroid . R . id . home ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( na ver Map : ĠN aver Map ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmarkers Ġ= ĠArrayList < Marker >() ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= Ġna ver Map . content Bounds ĊĊĠĠĠĠĠĠĠ Ġrepeat ( 5 0 ) Ġ{ Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers . add ( Marker (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Important ( this , Ġi Ġ< Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ= ĠLat Lng ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( bounds . north Latitude Ġ- Ġbounds . south Latitude ) Ġ* ĠMath . random () Ġ+ Ġbounds . south Latitude , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( bounds . east Longitude Ġ- Ġbounds . west Longitude ) Ġ* ĠMath . random () Ġ+ Ġbounds . west Longitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcaption Text Ġ= Ġ" Marker Ġ#$ i " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimportant Ġ= Ġtag Ġas ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Important ( this , Ġ! important ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Ġ= Ġna ver Map ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġhide _ col li ded _ symbols . setOnClickListener Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcheck able Ġ= Ġv Ġas ĠCheck able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchecked Ġ= Ġ! check able . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck able . isChecked Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Hide Col li ded Symbols Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġhide _ col li ded _ symbols . setOnClickListener Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcheck able Ġ= Ġv Ġas ĠCheck able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchecked Ġ= Ġ! check able . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck able . isChecked Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Hide Col li ded Markers Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġhide _ col li ded _ capt ions . setOnClickListener Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcheck able Ġ= Ġv Ġas ĠCheck able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchecked Ġ= Ġ! check able . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck able . isChecked Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Hide Col li ded Capt ions Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġforce _ show . setOnClickListener Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcheck able Ġ= Ġv Ġas ĠCheck able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchecked Ġ= Ġ! check able . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck able . isChecked Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforce Show Icon Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimportant Ġ= Ġit . tag Ġas ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Force Show Icon Ġ= Ġimportant Ġ&& Ġforce Show Icon ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Important ( marker : ĠMarker , Ġimportant : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmarker . icon Ġ= Ġif Ġ( important ) ĠMarker Icons . GREEN Ġelse ĠMarker Icons . GRAY ĊĠĠĠĠĠĠĠ Ġmarker . z Index Ġ= Ġif Ġ( important ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġmarker . tag Ġ= Ġimportant ĊĠĠĠĠĠĠĠ Ġmarker . is Force Show Icon Ġ= Ġimportant Ġ&& Ġforce Show Icon ĊĠĠĠ Ġ} Ċ } Ċ