/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠEs ri Ċ Ġ* Ċ Ġ* Ġ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 . esri . arc gis runtime . samples . create terrain from al oc alt ile package Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . esri . arc gis runtime . Arc GIS Runtime Environment Ċ import Ġcom . esri . arc gis runtime . load able . Load Status Ċ import Ġcom . esri . arc gis runtime . mapping . Arc GIS Scene Ċ import Ġcom . esri . arc gis runtime . mapping . Arc G IST iled Elevation Source Ċ import Ġcom . esri . arc gis runtime . mapping . Base map Ċ import Ġcom . esri . arc gis runtime . mapping . Base map Style Ċ import Ġcom . esri . arc gis runtime . mapping . view . Camera Ċ import Ġcom . esri . arc gis runtime . mapping . view . Scene View Ċ import Ġcom . esri . arc gis runtime . samples . create terrain from al oc alt ile package . databinding . Activity Main Binding Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠ Ġprivate Ġval Ġactivity Main Binding Ġby Ġlazy Ġ{ ĊĠĠĠ ĠActivity Main Binding . inflate ( layout Inflater ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġscene View : ĠScene View Ġby Ġlazy Ġ{ ĊĠĠĠ Ġactivity Main Binding . scene View ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ ĠsetContentView ( activity Main Binding . root ) ĊĊĠĠĠ Ġ// Ġauthentication Ġwith Ġan ĠAPI Ġkey Ġor Ġnamed Ġuser Ġis Ġrequired Ġto Ġaccess Ġbase maps Ġand Ġother ĊĠĠĠ Ġ// Ġlocation Ġservices ĊĠĠĠ ĠArc GIS Runtime Environment . set ApiKey ( Build Config . API _ KEY ) ĊĊĠĠĠ Ġ// Ġcreate Ġand Ġadd Ġa Ġscene Ġwith Ġan Ġimag ery Ġbase map ĊĠĠĠ Ġscene View . scene Ġ= ĠArc GIS Scene ( Base map Style . AR CG IS _ I MA GER Y ) ĊĊĠĠĠ Ġ// Ġspecify Ġthe Ġinitial Ġcamera Ġposition ĊĠĠĠ Ġscene View . setView point Camera ( Camera ( 3 6 . 5 2 5 , Ġ- 1 2 1 . 8 0 , Ġ 3 0 0 . 0 , Ġ 1 8 0 . 0 , Ġ 8 0 . 0 , Ġ 0 . 0 )) ĊĊĠĠĠ Ġ// Ġadd Ġa ĠArc G IST iled Elevation Source Ġto Ġthe Ġscene Ġby Ġpassing Ġthe ĠURI Ġof Ġthe Ġlocal Ġtile Ġpackage Ġto Ġthe Ġconstructor ĊĠĠĠ Ġwith ( ĊĠĠĠĠĠ ĠArc G IST iled Elevation Source ( get External Files Dir ( null )?. path Ġ+ ĠgetString ( R . string . local _ tile _ package _ location ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠ Ġ// Ġadd Ġa Ġlistener Ġto Ġperform Ġoperations Ġwhen Ġthe Ġload Ġstatus Ġof Ġthe ĠArc G IST iled Elevation Source Ġchanges ĊĠĠĠĠĠ Ġthis . add Load Status Changed Listener Ġ{ Ġload Status Changed Event Ġ-> ĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĠArc G IST iled Elevation Source Ġloads ĊĠĠĠĠĠĠĠ Ġif Ġ( load Status Changed Event . new Load Status Ġ== ĠLoad Status . LOADED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġ// Ġadd Ġthe ĠArc G IST iled Elevation Source Ġto Ġthe Ġelevation Ġsources Ġof Ġthe Ġscene ĊĠĠĠĠĠĠĠĠĠ Ġscene View . scene . base Surface . elevation Sources . add ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( load Status Changed Event . new Load Status Ġ== ĠLoad Status . FAILED _ TO _ LOAD ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġ// Ġnotify Ġuser Ġthat Ġthe ĠArc G IST iled Elevation Source Ġhas Ġfailed Ġto Ġload ĊĠĠĠĠĠĠĠĠĠ Ġlog Error To User ( getString ( R . string . error _ t iled _ elevation _ source _ load _ failure _ message )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġ// Ġload Ġthe ĠArc G IST iled Elevation Source Ġasynchronously ĊĠĠĠĠĠ Ġthis . load Async () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠAppCompatActivity ĠExtensions ĊĠĠ Ġ**/ ĊĠ Ġprivate Ġval ĠAppCompatActivity . log Tag Ġget () Ġ= Ġthis :: class . java . simple Name ĊĊĠ Ġprivate Ġfun ĠAppCompatActivity . log Error To User ( message : ĠString ) Ġ{ ĊĠĠĠ ĠToast . makeText ( this , Ġmessage , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ ĠLog . e ( log Tag , Ġmessage ) ĊĠ Ġ} Ċ } Ċ