Skip to content

Instantly share code, notes, and snippets.

@anta40
Created April 21, 2019 10:09
Show Gist options
  • Save anta40/c0d74251d5f190b811b79f6a4114f6fe to your computer and use it in GitHub Desktop.
Save anta40/c0d74251d5f190b811b79f6a4114f6fe to your computer and use it in GitHub Desktop.
Display marker on Google Maps (Kotlin)
import android.Manifest
import android.content.Context
import android.location.Location
import android.os.Build
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v4.app.ActivityCompat
import android.widget.Toast
import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.OnMapReadyCallback
import com.google.android.gms.maps.SupportMapFragment
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.Marker
import com.google.android.gms.maps.model.MarkerOptions
import com.google.android.gms.maps.model.BitmapDescriptorFactory
class MapsActivity : AppCompatActivity(), OnMapReadyCallback {
private lateinit var mMap: GoogleMap
private lateinit var currentMarker: Marker
private lateinit var currentPosition: LatLng
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_maps)
val mapFragment = supportFragmentManager
.findFragmentById(R.id.map) as SupportMapFragment
mapFragment.getMapAsync(this)
}
override fun onMapReady(googleMap: GoogleMap) {
mMap = googleMap
val sydney = LatLng(-34.0, 151.0)
mMap.addMarker(MarkerOptions().position(sydney).title("Marker in Sydney"))
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney))
mMap!!.setOnMarkerClickListener(object : GoogleMap.OnMarkerClickListener {
override fun onMarkerClick(marker: Marker): Boolean {
currentMarker = marker
currentPosition = currentMarker.position
Toast.makeText(applicationContext, "Lat: "+currentPosition.latitude+", lon: "+currentPosition.longitude, Toast.LENGTH_SHORT).show()
return false
}
})
mMap!!.setOnMapClickListener(object : GoogleMap.OnMapClickListener {
override fun onMapClick(latLng: LatLng) {
currentMarker.remove()
currentMarker = mMap.addMarker(
MarkerOptions()
.position(latLng)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED))
)
}
})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment