获取谷歌地图准确位置

时间:2021-02-10 06:33:48

标签: android kotlin google-maps-android-api-2

我有以下代码返回用户当前位置,但位置不准确

lateinit var mFusedLocationClient: FusedLocationProviderClient

override fun onCreateView(...) {....}

    @SuppressLint("MissingPermission")
    private fun getLastLocation() {
        mFusedLocationClient.lastLocation
            .addOnCompleteListener(requireActivity()) { task ->
                if (task.isSuccessful && task.result != null) {
                    mLastLocation = task.result
                    mMap.isMyLocationEnabled = true
                    val driverLatLng = LatLng(mLastLocation.latitude, mLastLocation.longitude)
                    markerOptions.position(driverLatLng).title("Your location").icon(
                        BitmapDescriptorFactory.fromBitmap(
                            driverIcon()
                        )
                    )
                    mMap.addMarker(markerOptions)
                } else {
                    Log.w("location", "getLastLocation:exception", task.exception)
                }
            }
    }

one

问题

  1. 如何使当前位置更准确
  2. 如何使蓝色圆圈更小,仅覆盖当前位置图钉(标记)?

1 个答案:

答案 0 :(得分:1)

问题 1)

如果您不要求尽可能高的准确度,则需要将其设置为该值:

LocationRequest.PRIORITY_HIGH_ACCURACY

这样,提供商应使用设备 GPS(如果可用)而不是 Wi-Fi/手机信号塔。 官方文档 here。可以找到使用高精度的代码示例 here

问题 2)

如果我问对了你的问题,圆圈代表当前位置的准确性,所以如果圆圈的精度更高,我想圆圈会变小。您只需要以尽可能高的精度尝试一下(只需确保正在使用设备的 GPS 并且信号良好)