gpt4 book ai didi

java - 随着 map 的移动在谷歌地图上获取标记

转载 作者:行者123 更新时间:2023-11-30 00:13:22 26 4
gpt4 key购买 nike

我正在开发一个安卓应用程序,我想在其中显示谷歌地图上的一些标记。我想在用户移动 map 时获取标记,而且我根据位置将大量标记存储在数据库中。要获得标记,我必须通过 map 相机上的当前中间位置请求。

所以我要问的是,是否有更好的标准来根据用户的移动和 map 的当前缩放级别来请求标记。在这里我需要一些优化,比如我不需要再次请求相同的标记。

Note: The key point here is not to make unwanted requests for fetching markers and not to keep higher number of markers in client side memory.

最佳答案

您可以通过覆盖 GoogleMap.OnCameraMoveStartedListener、GoogleMap.OnCameraMoveListener、GoogleMap.OnCameraMoveCanceledListener、GoogleMap.OnCameraIdleListener 获取当前中间相机位置。

@Override
public void onCameraIdle() {
double nextlatitude = mGoogleMap.getProjection().getVisibleRegion().latLngBounds.getCenter().latitude;
double nextlongitude = mGoogleMap.getProjection().getVisibleRegion().latLngBounds.getCenter().longitude;

System.out.println("Location Next : "+nextlatitude+" "+nextlongitude);
}

@Override
public void onCameraMoveCanceled() {
// Toast.makeText(getActivity(), "Camera movement canceled.",
// Toast.LENGTH_SHORT).show();
}

@Override
public void onCameraMove() {

}

@Override
public void onCameraMoveStarted(int reason) {
// if (reason == GoogleMap.OnCameraMoveStartedListener.REASON_GESTURE) {
// Toast.makeText(getActivity(), "The user gestured on the map.",
// Toast.LENGTH_SHORT).show();
// } else if (reason == GoogleMap.OnCameraMoveStartedListener
// .REASON_API_ANIMATION) {
// Toast.makeText(getActivity(), "The user tapped something on the map.",
// Toast.LENGTH_SHORT).show();
// } else if (reason == GoogleMap.OnCameraMoveStartedListener
// .REASON_DEVELOPER_ANIMATION) {
// Toast.makeText(getActivity(), "The app moved the camera.",
// Toast.LENGTH_SHORT).show();
// }
}

你可以通过这个获取当前的缩放级别:

map.getCameraPosition().zoom

关于java - 随着 map 的移动在谷歌地图上获取标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47765461/

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