谷歌地图API(Android SDK)。每次通过位置侦听器更新位置时,地图中都会显示一个新的标记
每次通过位置侦听器更新位置时,一个新的标记就会出现在我的地图上,看起来很奇怪。我只想要一个将被更新的标记谷歌地图API(Android SDK)。每次通过位置侦听器更新位置时,地图中都会显示一个新的标记,android,kotlin,google-maps-android-api-3,Android,Kotlin,Google Maps Android Api 3,每次通过位置侦听器更新位置时,一个新的标记就会出现在我的地图上,看起来很奇怪。我只想要一个将被更新的标记 override fun onMapReady(googleMap: GoogleMap?) { val locationListener = LocationListener { val latLng = LatLng(it.latitude,it.longitude) googleMap!!.addMarker(
override fun onMapReady(googleMap: GoogleMap?) {
val locationListener = LocationListener {
val latLng = LatLng(it.latitude,it.longitude)
googleMap!!.addMarker(
MarkerOptions()
.position(latLng)
.title("My Location")
)
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,16f))
}
try {
locationManager!!.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
1000, 0f, locationListener
)
} catch (ex: SecurityException) {
ex.printStackTrace()
}
}
在类中为标记创建一个字段
private lateinit var locationMarker:Marker
仅在字段尚未初始化时添加要映射的标记,否则更新上一个标记。像这样:
val locationListener=locationListener{
val latLng=latLng(it.纬度,it.经度)
如果(::locationMarker.isInitialized){
locationMarker.position=车床
}否则{
locationMarker=谷歌地图!!.addMarker(
标记选项()
.位置(车床)
.title(“我的位置”)
)
}
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,16f))
}