线串末端的 Mapbox 样式圆圈

问题描述 投票:0回答:2

我想仅在 LineStrings 的ends处渲染圆圈,理想情况下不需要创建单独的重复数据源。

我有代表来自 OpenMapTiles 项目的路线的 LineStrings。它们使用

line
图层样式类型渲染得很好,但是当我尝试使用
circle
图层样式类型渲染时,它会在 每个 顶点渲染一个圆,而不仅仅是末端。是否有一个过滤器表达式可以用来仅在末端显示这些圆圈?

这是渲染下图中的点的样式层:

    {
      "id": "road_path_pedestrian_trail_ends",
      "type": "circle",
      "source": "openmaptiles",
      "source-layer": "transportation",
      "minzoom": 13,
      "filter": [
        "all",
        ["==", "$type", "LineString"],
        ["!in", "brunnel", "bridge", "tunnel"],
        ["in", "class", "path", "pedestrian"],
        ["in", "subclass", "path", "footway"]
      ],
      "layout": {"visibility": "visible"},
      "paint": {}
    }

enter image description here

mapbox mapbox-gl-js mapbox-gl
2个回答
0
投票

据我所知,没有办法区分线端点和任何其他顶点。

您可以通过渲染两条线来获得您想要的效果,其中一条线带有

line-end: round
(不同的颜色),另一条线带有
line-end: butt
。你会得到一个微小的半圆形的东西,这可能比什么都没有好?


0
投票

似乎还是没有解决办法。请参阅未解决的问题: https://github.com/mapbox/mapbox-gl-js/issues/9937

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.