从服务器加载谷歌地图标记的最有效方法是什么



我有一个服务器,存储遍布全球的数十万个谷歌地图标记详细信息,现在我试图在我的安卓应用程序中显示它们。显然,我不需要一次显示整个标记,而只需要显示用户正在查看的位置和一定的缩放。im使用来自服务器的json文件来发送标记,但我还没有意识到根据用户需要加载它们的最有效方法是什么。谢谢!

您可以获得谷歌地图中心位置的 LatLng。然后,您可以将位置发送到服务器并计算比一定距离更近的点,并仅返回这些点。

使用类似这样的东西:

 mGoogleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
            @Override
            public void onCameraChange(CameraPosition cameraPosition) {
                LatLng latLng = cameraPosition.target;
                mRepository.requestPointsNearPosition(latLng)
            }
        });

因此,每次相机改变位置时,您都会重新加载点。这样,您始终只显示地图中的相关点。

也许您可以使用句柄来确保用户停止移动地图 0.5 秒,处理程序仅在地图停止移动时触发操作......其他 如果地图再次移动,它会自行取消

定义当前用户的比例和围绕中心的圆形区域,该区域比用户可以看到的要大几倍。下载该区域的标记。每次用户移动地图时,您都会检查新透视是否属于该区域,绘制一个新圆圈并下载未包含在上一个圆圈中的区域的图标

最新更新