gpt4 book ai didi

Android 谷歌地图 setMyLocationEnabled(true)

转载 作者:行者123 更新时间:2023-11-29 15:58:41 25 4
gpt4 key购买 nike

我正在学习一个教程,我的应用基本上可以正常工作,除了一个小细节。我有一个选项菜单来演示诸如将 map 显示为卫星 View 、缩放到特定位置等内容。

本教程有两个菜单选项,如下所示,有效地需要按显示的顺序使用,以便将 map 缩放到我当前所在的位置。我想通过将相同的功能添加到第二个菜单项(显示当前位置)来使第一项变得多余(getcurrentrocation),但这会导致应用程序崩溃。

有没有人知道为什么以及如何克服它。谢谢。

代码 fragment 如下

    case R.id.menu_getcurrentlocation:
// ---get your current location and display a blue dot---
map.setMyLocationEnabled(true);

break;

case R.id.menu_showcurrentlocation:
// Adding the next line breaks the app.
// map.setMyLocationEnabled(true);
Location myLocation = map.getMyLocation();
LatLng myLatLng = new LatLng(myLocation.getLatitude(),myLocation.getLongitude());


CameraPosition myPosition = new CameraPosition.Builder().target(myLatLng).zoom(17).bearing(90).tilt(30).build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(myPosition));

break;

最佳答案

最初,当您的 GoogleMap 第一次加载时需要一些时间,因此 Location 将为空。

因此,对于您的两个菜单选项,请以这种方式检查。

if(map!=null){
map.setMyLocationEnabled(true);
}


if(map!=null){
Location myLocation = map.getMyLocation();

if(myLocation !=null){
LatLng myLatLng = new LatLng(myLocation.getLatitude(),
myLocation.getLongitude());


CameraPosition myPosition = new CameraPosition.Builder()
.target(myLatLng).zoom(17).bearing(90).tilt(30).build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(myPosition));
}
}

关于Android 谷歌地图 setMyLocationEnabled(true),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26057833/

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