gpt4 book ai didi

android - 自动按下 MapView 上的“我的位置”按钮

转载 作者:太空宇宙 更新时间:2023-11-03 13:23:49 24 4
gpt4 key购买 nike

我在 Fragment 中有一个 MapView,并且我已经通过 setMyLocationEnabled() 显示用户位置。一切都按预期工作。

对于我想缩放到用户位置的典型用例 - 在股票 map UI 上按下“我的位置”按钮的确切行为。

我想让用户不必按下“我的位置”按钮并自动执行此步骤,但我无法从 API 中看到如何执行此操作。我可以从 GoogleMap 获取 UiSettings 但这似乎只允许我查询/设置 map UI 的状态(即是否我的位置已启用,因此可以按下)。

或者我真的必须设置一个 LocationClient 并计算一个 CameraUpdate 并制作动画吗?做一些很常见/简单的事情似乎需要很多工作。正确实现这一点的逻辑(即用户期望它的行为)比乍看起来要复杂得多,我很想避免重复代码,因为显然已经在 Google map 中实现了。

最佳答案

要将 map 相机位置移动到用户位置,您必须首先找到用户位置,然后通过使用 locationmanager 类对象,您可以在 onLocationChanged 方法中获取该位置

LocationManager locationManager = (LocationManager) getActivity().getSystemService(
Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 0, 0, this);

//...

public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(location.getLatitude(), location
.getLongitude())) //
.zoom(9).build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

locationManager.removeUpdates(this);
}

关于android - 自动按下 MapView 上的“我的位置”按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23406274/

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