package Ġcom . ocean br as il . ocean _ android _ gps _ 1 4 _ 1 0 _ 2 0 2 1 Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . location . Location Manager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . app . Activity Compat Ċ 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 . Circle Options Ċ import Ġcom . google . android . gms . maps . model . LatLng Ċ import Ġcom . google . android . gms . maps . model . Marker Options Ċ import Ġcom . ocean br as il . ocean _ android _ gps _ 1 4 _ 1 0 _ 2 0 2 1 . databinding . Activity Maps Binding Ċ Ċ class ĠMaps Activity Ġ: ĠAppCompatActivity (), ĠOn Map Ready Callback Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Map : ĠGoogle Map ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Maps Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Maps Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ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 ĊĠĠĠĠĠĠĠ Ġmap Fragment . getMap Async ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMan ip ulates Ġthe Ġmap Ġonce Ġavailable . ĊĠĠĠĠ Ġ* ĠThis Ġcallback Ġis Ġtriggered Ġwhen Ġthe Ġmap Ġis Ġready Ġto Ġbe Ġused . ĊĠĠĠĠ Ġ* ĠThis Ġis Ġwhere Ġwe Ġcan Ġadd Ġmarkers Ġor Ġlines , Ġadd Ġlisteners Ġor Ġmove Ġthe Ġcamera . ĠIn Ġthis Ġcase , ĊĠĠĠĠ Ġ* Ġwe Ġjust Ġadd Ġa Ġmarker Ġnear ĠSy dn ey , ĠA ustralia . ĊĠĠĠĠ Ġ* ĠIf ĠGoogle ĠPlay Ġservices Ġis Ġnot Ġinstalled Ġon Ġthe Ġdevice , Ġthe Ġuser Ġwill Ġbe Ġpromp ted Ġto Ġinstall ĊĠĠĠĠ Ġ* Ġit Ġinside Ġthe ĠSupport Map Fragment . ĠThis Ġmethod Ġwill Ġonly Ġbe Ġtriggered Ġonce Ġthe Ġuser Ġhas ĊĠĠĠĠ Ġ* Ġinstalled ĠGoogle ĠPlay Ġservices Ġand Ġreturned Ġto Ġthe Ġapp . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( google Map : ĠGoogle Map ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Map Ġ= Ġgoogle Map ĊĊĠĠĠĠĠĠĠ Ġval Ġs ao P au lo Ġ= ĠLat Lng (- 2 3 . 5 6 0 4 3 5 8 5 6 2 6 9 6 5 6 , Ġ- 4 6 . 6 5 6 0 4 3 9 9 5 7 5 3 1 8 ) ĊĠĠĠĠĠĠĠ Ġm Map . add Marker ( Marker Options (). position ( sa o P au lo ). title (" M ASP ")) ĊĠĠĠĠĠĠĠ Ġm Map . animate Camera ( Camera Update Factory . new LatLng Zoom ( sa o P au lo , Ġ 1 6 . 2 5 f )) ĊĊĠĠĠĠĠĠĠ Ġm Map . add Circle ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCircle Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center ( sa o P au lo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. radius ( 2 0 0 . 0 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. stroke Color ( Color . BLACK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. stroke Width ( 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Color ( Color . parse Color ("# 5 3 7 C DB E 7 ")) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġin iciar Local iz acao () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġin iciar Local iz acao () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocation Manager Ġ= Ġget System Service ( Context . LOCATION _ SERVICE ) Ġas ĠLocation Manager ĊĊĠĠĠĠĠĠĠ Ġval Ġlocation Provider Ġ= ĠLocation Manager . GPS _ PROVIDER ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Activity Compat . check Self Permission ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED Ġ&& ĠActivity Compat . check Self Permission ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCas o ĠnÃ£o Ġten ha Ġas Ġper miss Ãµes , Ġs olic ita ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEn c erra Ġa Ġexec uÃ§Ã£o Ġdo ĠmÃ©todo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġult ima Local iz acao Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Manager . getLast Known Location ( location Provider ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠToast . makeText ( this , Ġult ima Local iz acao . toString (), ĠToast . LENGTH _ LONG ). show () ĊĊĠĠĠĠĠĠĠ Ġult ima Local iz acao ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlat Lng Ġ= ĠLat Lng ( it . latitude , Ġit . longitude ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Map . add Marker ( Marker Options (). position ( lat Lng ). title (" Ã ļ lt ima Ġlocal izaÃ§Ã£o ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Map . animate Camera ( Camera Update Factory . new LatLng Zoom ( lat Lng , Ġ 1 6 . 2 5 f )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( ĊĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠ Ġpermissions : ĠArray < out ĠString >, ĊĠĠĠĠĠĠĠ Ġgrant Results : ĠInt Array ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSe Ġo ĠRequest Code Ġfor Ġ 1 , Ġsign ifica Ġque Ġfoi Ġa Ġcham ada Ġde Ġlocal izaÃ§Ã£o Ġque Ġf iz emos ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġgrant Results [ 0 ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin iciar Local iz acao () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ