【发布时间】:2016-03-07 18:32:03
【问题描述】:
setLocationEnabled 是一个属性,它在地图顶部显示一个按钮,使地图转到当前位置。
但我想“隐藏”此按钮并在另一个自定义按钮上调用该方法。有办法吗?我不想创建一个大代码去当前位置,它并不快。我只想要一个与 setLocationEnabled(true) 功能相同的按钮。
我该怎么做?
【问题讨论】:
标签: java android google-maps
setLocationEnabled 是一个属性,它在地图顶部显示一个按钮,使地图转到当前位置。
但我想“隐藏”此按钮并在另一个自定义按钮上调用该方法。有办法吗?我不想创建一个大代码去当前位置,它并不快。我只想要一个与 setLocationEnabled(true) 功能相同的按钮。
我该怎么做?
【问题讨论】:
标签: java android google-maps
我已经处理了一个类似的问题,我从这里找到了一个非常详细的解决方案Google map for android my location custom button
玩得开心!
【讨论】:
您可能知道,您可以使用以下命令隐藏当前位置按钮:
UiSettings.setMyLocationButtonEnabled(false);
现在,如果您想手动执行此任务,则必须自己完成一些工作。首先,您需要获取用户的当前位置。这可以通过覆盖 LocationListener 实现的onLocationChanged 函数来获取(和更新)。如果您不清楚如何执行此操作,请查看描述它的 documentation。 This 可能也很有用!
其次,您需要通过设置地图的摄像头来查看用户的位置,并(可能)在该位置设置一个标记。这是我在最近的一个应用程序中使用的功能,描述了如何做到这一点:
public void moveToLocation(Location input) {
Double lat = (double) (input.getLatitude());
Double lon = (double) (input.getLongitude());
final LatLng location = new LatLng(lat, lon);
setLocMarker(location);
mainMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location, 16));
//if you want the camera to have an "animated" effect, you can perform the following
//mainMap.animateCamera(CameraUpdateFactory.zoomTo(16), 4000, null);
}
有关相机效果和动画的更多信息,请参阅documentation。
【讨论】: