仅当缩放高于某个值时才显示markerOptions 的优化而非弃用方式

Posted

技术标签:

【中文标题】仅当缩放高于某个值时才显示markerOptions 的优化而非弃用方式【英文标题】:Optimized and not deprecated way for displaying markerOptions only if zoom is above a value 【发布时间】:2018-08-06 11:17:18 【问题描述】:

我只想在缩放比例高于 15 时才显示地图的千位标记。

在这里搜索我找到了这个解决方案,但是如果你显示一千个标记,它已被弃用并且不好,所以我正在寻找更优化的更好解决方案:

Google Maps android - Only show markers below a certain zoom level

List<Marker> list = new ArrayList<>();
list.add([a thousand of markers]);

googleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() 
    @Override
    public void onCameraChange(CameraPosition cameraPosition) 
        for(Marker m:list)
            m.setVisible(cameraPosition.zoom>15);
        
    
);

是否有可能通过优化的解决方案实现这一目标?

【问题讨论】:

【参考方案1】:

要使用未弃用的 API 调用,请使用新的 Camera Change Events:

googleMap.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() 
    @Override
    public void onCameraIdle() 

        float zoomLevel = googleMap.getCameraPosition().zoom;

        for(Marker m : list)
            m.setVisible(zoomLevel > 15);
        
    
);

【讨论】:

这是最有效的方法吗?

以上是关于仅当缩放高于某个值时才显示markerOptions 的优化而非弃用方式的主要内容,如果未能解决你的问题,请参考以下文章

仅当定义了值时才向对象添加属性

仅当它是数组中的值时才可以打印数字吗? (Java)[重复]

仅当它在 AngularJs 中有值时才需要下拉

仅当表中不存在该值时才更新 SQL 列

仅当高于 0 时才计算每列的最小值和最大值之间的差异

MongoDB + Mongoose:仅当给定键不存在或具有虚假值时才设置