1 package expo.modules.maps.googleMaps
2 
3 import android.content.Context
4 import android.net.Uri
5 import com.google.android.gms.maps.GoogleMap
6 import com.google.maps.android.data.kml.KmlLayer
7 import expo.modules.maps.KMLObject
8 import expo.modules.maps.interfaces.KMLs
9 import java.io.File
10 
11 class GoogleMapsKMLs(private val context: Context, private val map: GoogleMap) : KMLs {
12 
13   private val layers = mutableListOf<KmlLayer>()
14 
setKMLsnull15   override fun setKMLs(kmlObjects: Array<KMLObject>) {
16     deleteKMLs()
17 
18     kmlObjects.forEach {
19       val path = File(Uri.parse(it.filePath).path!!)
20       val layer = KmlLayer(map, path.inputStream(), context)
21       layer.addLayerToMap()
22       layers.add(layer)
23     }
24   }
25 
deleteKMLsnull26   private fun deleteKMLs() {
27     layers.forEach { it.removeLayerFromMap() }
28     layers.clear()
29   }
30 }
31