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

时间:2017-01-16 12:19:18

标签: java android json google-maps

我有一个存储十万个谷歌地图标记详细信息的服务器遍布全球,现在我试图在我的Android应用程序中显示它们。 很明显,我不需要一次显示整个标记,而只需要用户正在查看和缩放的位置。即时通讯使用服务器的json文件发送标记,但我还没有意识到,最有效的方法是加载它们作为用户需要。 谢谢!

2 个答案:

答案 0 :(得分:0)

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

使用类似的东西:

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

                mRepository.requestPointsNearPosition(latLng)
            }
        });

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

也许你可以使用一个句柄来确保用户停止移动地图0.5秒处理程序只触发地图停止移动的动作...其他它会在地图再次移动时取消自己

答案 1 :(得分:0)

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