在Android上使用延迟加载需要时添加标记到地图

时间:2015-03-19 14:26:48

标签: android google-maps google-maps-markers lazy-loading android-lazyloading

我正在尝试编写一个Android应用程序,使用谷歌地图在地图上显示一些点(商店位置)。我在数据库服务器上有商店规格,包括LatLng,title等,并有一个rest api来访问它们。我的问题是商店的总量太多,所以我无法获得所有这些并在地图上显示它们,所以我需要进行某种延迟加载才能访问所需的商店。< / p>

我找到了this link,但它并不是懒人加载,我的理解是它首先得到所有项目并用标记显示它们,这不是我需要的。< / p>

有可能这样做吗?如果有,怎么样?如果有可能,请给我一些示例或教程。

提前感谢。

1 个答案:

答案 0 :(得分:1)

为什么你不使用Google Maps Android Marker Clustering Utility?

我曾经在地图上加载12000个标记,对我来说没问题。我同时加载了所有这些标记。

要使用延迟加载,您可以确定可查看的地图区域并仅加载此标记。

您可以使用OnCameraChangeListener来确定它:

map.setOnCameraChangeListener(new OnCameraChangeListener() {
    @Override
    public void onCameraChange(CameraPosition position) {
        BOUNDS = map.getProjection().getVisibleRegion().latLngBounds;
        Float mapZoom = map.getCameraPosition().zoom;
        LatLng latlong = map.getCameraPosition().target;
        updateItems(BOUNDS);
        mapZoom = map.getCameraPosition().zoom;
    }
});