Firebase 如何动态更新谷歌地图上的标记位置?
我正在创建一个约会应用程序,它将使用谷歌地图,以显示一定范围内的所有用户,并跟踪他们的移动。我已经从Firebase数据库中检索了数据,并将其以标记的形式显示在地图上,但我真的不知道如何实现位置的自动更新。现在可以通过手动刷新地图来查看更改 这是我的onCreate函数:Firebase 如何动态更新谷歌地图上的标记位置?,firebase,google-maps,kotlin,firebase-realtime-database,google-maps-markers,Firebase,Google Maps,Kotlin,Firebase Realtime Database,Google Maps Markers,我正在创建一个约会应用程序,它将使用谷歌地图,以显示一定范围内的所有用户,并跟踪他们的移动。我已经从Firebase数据库中检索了数据,并将其以标记的形式显示在地图上,但我真的不知道如何实现位置的自动更新。现在可以通过手动刷新地图来查看更改 这是我的onCreate函数: override fun onCreate(savedInstanceState: Bundle?) super.onCreate(savedInstanceState) setContentVi
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_maps)
mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this)
mapFrag = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment
mapFrag?.getMapAsync(this)
override fun onMapReady(googleMap: GoogleMap?) {
map = googleMap!!
map.mapType = GoogleMap.MAP_TYPE_NORMAL
mLocationRequest = LocationRequest()
mLocationRequest.interval = 120000
mLocationRequest.fastestInterval = 120000
mLocationRequest.priority = LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
if(ContextCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)
{
mFusedLocationProviderClient?.requestLocationUpdates(mLocationRequest,mLocationCallback, Looper.myLooper()!!)
map.isMyLocationEnabled = true
update_pr()
}
else
{
checkLocationPermission()
}
}
else
{
mFusedLocationProviderClient?.requestLocationUpdates(mLocationRequest,mLocationCallback,Looper.myLooper()!!)
}
和onMapReady函数:
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_maps)
mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this)
mapFrag = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment
mapFrag?.getMapAsync(this)
override fun onMapReady(googleMap: GoogleMap?) {
map = googleMap!!
map.mapType = GoogleMap.MAP_TYPE_NORMAL
mLocationRequest = LocationRequest()
mLocationRequest.interval = 120000
mLocationRequest.fastestInterval = 120000
mLocationRequest.priority = LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
if(ContextCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)
{
mFusedLocationProviderClient?.requestLocationUpdates(mLocationRequest,mLocationCallback, Looper.myLooper()!!)
map.isMyLocationEnabled = true
update_pr()
}
else
{
checkLocationPermission()
}
}
else
{
mFusedLocationProviderClient?.requestLocationUpdates(mLocationRequest,mLocationCallback,Looper.myLooper()!!)
}