首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mapbox图层minzoom/maxzoom有时不起作用

mapbox图层minzoom/maxzoom有时不起作用
EN

Stack Overflow用户
提问于 2019-06-27 16:50:23
回答 1查看 187关注 0票数 0

我有3个层-一个用于聚类点(L1) -一个用于非聚类点(L3) -一个用于非聚类点(L2)

我已经设置了图层的最小缩放和最大缩放级别,以便:-当缩放>9(远)时,仅显示L1和L3 -当缩放<9(近)时,仅显示L2

所有这些都适用于L1和L2,但可以转换为缩放级别。相反,图层L3始终显示在贴图中。

代码语言:javascript
复制
            GeoJsonSource source = new GeoJsonSource(
                    "sourcePoiItems",
                    featureCollection,
                    new GeoJsonOptions()
                            .withCluster(true)
                            .withClusterMaxZoom(8)
                            .withClusterRadius(15)
                            .withMinZoom(0)
                            .withMaxZoom(9)
                            .withTolerance(10));
            GeoJsonSource source2 = new GeoJsonSource(
                    "sourcePoiItems2",
                    featureCollection,
                    new GeoJsonOptions()
                            .withCluster(false)
                            .withMinZoom(9)
                            .withMaxZoom(16));
            GeoJsonSource source3 = new GeoJsonSource(
                    "sourcePoiItems3",
                    featureCollection,
                    new GeoJsonOptions()
                            .withCluster(true)
                            .withClusterMaxZoom(8)
                            .withClusterRadius(10)
                            .withMinZoom(0)
                            .withMaxZoom(9)
                            .withTolerance(10));
            mapboxMap.getStyle().addSource(source);
            mapboxMap.getStyle().addSource(source2);
            mapboxMap.getStyle().addSource(source3);
            SymbolLayer unclustered = new SymbolLayer("unclustered-points", "sourcePoiItems2");
            unclustered.setProperties(
                    PropertyFactory.iconImage(get("icon")));
            mapboxMap.getStyle().addLayer(unclustered);

            //relevant part

            CircleLayer circles = new CircleLayer("cluster-3", "sourcePoiItems3");
            circles.setProperties(
                    PropertyFactory.circleColor(layers[0][1]),
                    PropertyFactory.circleRadius(18f)
            );
            circles.setFilter(
                    not(has("point_count"))
            );
            mapboxMap.getStyle().addLayer(circles);

            SymbolLayer count1 = new SymbolLayer("count1", "sourcePoiItems3");
            count1.setProperties(
                    PropertyFactory.textField(Expression.literal("1")),
                    PropertyFactory.textSize(12f),
                    PropertyFactory.textColor(Color.WHITE),
                    PropertyFactory.textIgnorePlacement(true),
                    PropertyFactory.textAllowOverlap(true)
            );
            count1.setFilter(Expression.not(Expression.has("point_count")));
            mapboxMap.getStyle().addLayer(count1);
EN

回答 1

Stack Overflow用户

发布于 2019-06-28 04:59:11

你能为你看到的东西做一个有效的测试用例吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56787339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档