gpt4 book ai didi

android - 使 setMyLocationEnabled 只获取一次位置

转载 作者:行者123 更新时间:2023-11-30 01:52:02 35 4
gpt4 key购买 nike

我使用以下行来确保我的 map 显示设备的当前位置和一个将相机置于该位置中心的按钮

mMap.setMyLocationEnabled(true);

这是非常标准的东西,但这意味着该应用程序会不断触发位置请求以耗尽电池电量。在我的用例中,这不是必需的,每次 onResume 只检查一次位置就足够了。

然而,我无法为此找到解决方案。我可以创建一个 LocationRequest 并使其只更新一次(见下文),但这似乎不适用于 setMyLocationEnabled 函数。

mLocationRequest = LocationRequest.create();
mLocationRequest.setInterval(15000) // 15 seconds
.setFastestInterval(16) // 16ms = 60fps
.setNumUpdates(1)
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

我知道我可以将 setMyLocationEnabled 设置为 false,但这也会从屏幕上删除我不想要的当前位置。

最佳答案

因此,实现此目的的方法是实现 LocationSource 并使用您自己的监听器。

private OnLocationChangedListener mMapLocationListener;

本地图设置调用时

mMap.setLocationSource(this);

然后使用 GoogleApiclient 和融合的 api 获取最后的位置(并为其设置 map 相机)

Location mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
LatLng currentPos = new LatLng(mLastLocation.getLatitude(), mLastLocation.getLongitude());
mMap.animateCamera(CameraUpdateFactory.newLatLng(currentPos));

关于android - 使 setMyLocationEnabled 只获取一次位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32884449/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com