Created
April 21, 2019 10:09
-
-
Save anta40/c0d74251d5f190b811b79f6a4114f6fe to your computer and use it in GitHub Desktop.
Display marker on Google Maps (Kotlin)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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