package Ġcom . car to . advanced . kotlin . sections . ground overlay Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . car to . advanced . kotlin . R Ċ import Ġcom . car to . advanced . kotlin . model . Texts Ċ import Ġcom . car to . advanced . kotlin . sections . base . views . Map Base View Ċ import Ġcom . car to . advanced . kotlin . sections . base . utils . to Car to Color Ċ import Ġcom . car to . advanced . kotlin . utils . Colors Ċ import Ġcom . car to . advanced . kotlin . utils . Utils Ċ import Ġcom . car to . core . Map Pos Ċ import Ġcom . car to . core . Map Pos Vector Ċ import Ġcom . car to . datas ources . Bitmap Overlay Raster Tile DataSource Ċ import Ġcom . car to . layers . Car to Base Map Style Ċ import Ġcom . car to . layers . Car to Online Vector Tile Layer Ċ import Ġcom . car to . layers . Raster Tile Layer Ċ import Ġcom . car to . core . Screen Pos Ċ import Ġcom . car to . core . Screen Pos Vector Ċ import Ġcom . car to . utils . Bitmap Utils Ċ import Ġcom . car to . layers . Tile Substitution Policy Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġmark Ġon Ġ 1 0 / 0 8 / 2 0 1 7 . Ċ Ġ*/ Ċ class ĠGround Overlay View ( context : ĠContext ) Ġ: ĠMap Base View ( context ) Ġ{ ĊĊĠĠĠ Ġvar Ġbase Layer : ĠCar to Online Vector Tile Layer ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġoverlay Source : ĠBitmap Overlay Raster Tile DataSource ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġoverlay Layer : ĠR aster Tile Layer ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠ Ġtitle Ġ= ĠText s . ground Overlay Info Header ĊĠĠĠĠĠĠĠ Ġdescription Ġ= ĠText s . ground Overlay Info Container ĊĊĠĠĠĠĠĠĠ Ġbase Layer Ġ= Ġadd Base Layer ( Car to Base Map Style . CAR TO _ BASE MAP _ STYLE _ POSIT RON ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠLoad Ġground Ġoverlay Ġbitmap ĊĠĠĠĠĠĠĠ Ġval Ġoverlay Bitmap Ġ= ĠBitmap Utils . load Bitmap From Assets (" je ff erson - building - ground - floor . jpg ") ĊĊĠĠĠĠĠĠĠ Ġval Ġproj Ġ= Ġmap . options . base Projection ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġtwo Ġvectors Ġcontaining Ġgeo graphical Ġpositions Ġand Ġcorresponding Ġraster Ġimage Ġpixel Ġcoordinates . ĊĠĠĠĠĠĠĠ Ġ// Ġ 2 , Ġ 3 Ġor Ġ 4 Ġpoints Ġmay Ġbe Ġspecified . ĠUsually Ġ 2 Ġpoints Ġare Ġenough Ġ( for Ġconform al Ġmapping ). ĊĠĠĠĠĠĠĠ Ġval Ġpos Ġ= Ġproj . from W gs 8 4 ( Map Pos (- 7 7 . 0 0 4 5 9 0 , Ġ 3 8 . 8 8 8 7 0 2 )) ĊĠĠĠĠĠĠĠ Ġval Ġsize NS Ġ= Ġ 1 1 0 . 0 ĊĠĠĠĠĠĠĠ Ġval Ġsize WE Ġ= Ġ 1 0 0 . 0 ĊĊĠĠĠĠĠĠĠ Ġval Ġmap Po ses Ġ= ĠMap Pos Vector () ĊĠĠĠĠĠĠĠ Ġmap Po ses . add ( Map Pos ( pos . getX () Ġ- Ġsize WE , Ġpos . getY () Ġ+ Ġsize NS )) ĊĠĠĠĠĠĠĠ Ġmap Po ses . add ( Map Pos ( pos . getX () Ġ+ Ġsize WE , Ġpos . getY () Ġ+ Ġsize NS )) ĊĠĠĠĠĠĠĠ Ġmap Po ses . add ( Map Pos ( pos . getX () Ġ+ Ġsize WE , Ġpos . getY () Ġ- Ġsize NS )) ĊĠĠĠĠĠĠĠ Ġmap Po ses . add ( Map Pos ( pos . getX () Ġ- Ġsize WE , Ġpos . getY () Ġ- Ġsize NS )) ĊĊĠĠĠĠĠĠĠ Ġval Ġbitmap Po ses Ġ= ĠScreen Pos Vector () ĊĠĠĠĠĠĠĠ Ġbitmap Po ses . add ( Screen Pos ( 0 f , Ġ 0 f )) ĊĠĠĠĠĠĠĠ Ġbitmap Po ses . add ( Screen Pos ( 0 f , Ġoverlay Bitmap . height . toFloat ())) ĊĠĠĠĠĠĠĠ Ġbitmap Po ses . add ( Screen Pos ( overlay Bitmap . width . toFloat (), Ġoverlay Bitmap . height . toFloat ())) ĊĠĠĠĠĠĠĠ Ġbitmap Po ses . add ( Screen Pos ( overlay Bitmap . width . toFloat (), Ġ 0 f )) ĊĊĠĠĠĠĠĠĠ Ġoverlay Source Ġ= ĠBitmap Overlay Raster Tile DataSource ( 0 , Ġ 2 0 , Ġoverlay Bitmap , Ġproj , Ġmap Po ses , Ġbitmap Po ses ) ĊĊĠĠĠĠĠĠĠ Ġoverlay Layer Ġ= ĠR aster Tile Layer ( overlay Source ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠApply Ġzoom Ġlevel Ġbias Ġto Ġthe Ġraster Ġlayer . ĊĠĠĠĠĠĠĠ Ġ// ĠBy Ġdefault , Ġbit maps Ġare Ġup sampled Ġon Ġhigh - DPI Ġscreens . ĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġwill Ġcorrect Ġthis Ġby Ġapplying Ġappropriate Ġbias ĊĠĠĠĠĠĠĠ Ġval Ġzoom Level Bias Ġ= Ġ( Math . log ( map . options . dpi Ġ/ Ġ 1 6 0 . 0 ) Ġ/ ĠMath . log ( 2 . 0 )). toFloat () ĊĊĠĠĠĠĠĠĠ Ġoverlay Layer !!. zoom Level Bias Ġ= Ġzoom Level Bias Ġ* Ġ 0 . 7 5 f ĊĠĠĠĠĠĠĠ Ġoverlay Layer !!. tile Substitution Policy Ġ= ĠTile Substitution Policy . TILE _ SUB STIT UTION _ POLICY _ VISIBLE ĊĊĠĠĠĠĠĠĠ Ġmap . layers . add ( overlay Layer ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġspecific Ġfocus / zoom Ġfor Ġan Ġoptimal Ġinitial Ġview ĊĠĠĠĠĠĠĠ Ġmap . set Focus Pos ( pos , Ġ 0 . 0 f ) ĊĠĠĠĠĠĠĠ Ġmap . set Zoom ( 1 5 . 5 f , Ġ 0 . 0 f ) ĊĊĠĠĠĠĠĠĠ Ġlayout Sub views () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlayout Sub views () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . layout Sub views () ĊĠĠĠ Ġ} Ċ }