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

Java 从服务器加载google地图标记最有效的方法是什么,java,android,json,google-maps,Java,Android,Json,Google Maps,我有一个服务器,可以存储遍布全球的数十万个谷歌地图标记细节,现在我正试图在我的android应用程序中显示它们。 显然,我不需要一次显示整个标记,只需要显示用户正在查看的位置和特定的缩放。我使用服务器上的json文件发送标记,但我还没有意识到根据用户需要加载标记的最有效方式。 谢谢大家! 您可以获得谷歌地图中心位置的板条。然后,您可以将位置发送到服务器,计算出距离某个距离较近的点,并仅返回这些点 使用类似以下内容: mGoogleMap.setOnCameraChangeListener(ne

我有一个服务器,可以存储遍布全球的数十万个谷歌地图标记细节,现在我正试图在我的android应用程序中显示它们。 显然,我不需要一次显示整个标记,只需要显示用户正在查看的位置和特定的缩放。我使用服务器上的json文件发送标记,但我还没有意识到根据用户需要加载标记的最有效方式。
谢谢大家!

您可以获得谷歌地图中心位置的板条。然后,您可以将位置发送到服务器,计算出距离某个距离较近的点,并仅返回这些点

使用类似以下内容:

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

                mRepository.requestPointsNearPosition(latLng)
            }
        });
因此,每次摄影机更改位置时,都会重新加载点。这样,您总是只显示地图中的相关点


也许你可以使用一个句柄来确保用户停止移动地图0.5秒,该句柄只会在地图停止移动时触发操作。。。另外,如果地图再次移动,它会自动取消。

您可以获取谷歌地图中心位置的板条。然后,您可以将位置发送到服务器,计算出距离某个距离较近的点,并仅返回这些点

使用类似以下内容:

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

                mRepository.requestPointsNearPosition(latLng)
            }
        });
因此,每次摄影机更改位置时,都会重新加载点。这样,您总是只显示地图中的相关点


也许你可以使用一个句柄来确保用户停止移动地图0.5秒,该句柄只会在地图停止移动时触发操作。。。另一方面,如果地图再次移动,它会自动取消。

定义当前用户的比例和围绕中心的圆形区域,该区域比用户可以看到的大几倍。下载该区域的标记。每次用户移动地图时,检查新的透视图是否属于该区域,绘制一个新的圆圈,并下载未包含在前一个圆圈中的区域的图标,定义当前用户的比例和围绕中心的圆形区域,该区域比用户能看到的大几倍。下载该区域的标记。每次用户移动地图时,检查新的透视图是否属于该区域,绘制一个新的圆圈,并下载未包含在前一个圆圈中的区域的图标,这就是我的想法,但调用该函数的正确点是什么?我认为每次用户移动地图中心时向服务器发出请求是无效的,我想这就是我要做的。非常感谢。这就是我的想法,但是调用这个函数的正确点是什么?我认为每次用户移动地图中心时向服务器发出请求是无效的,我想这就是我要做的。非常感谢。谢谢,但如果用户将地图滚动到地球的另一端,是否意味着我必须加载整个内容?谢谢,但如果用户将地图滚动到地球的另一端,是否意味着我必须加载整个内容?