我想仅在 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": {}
}
据我所知,没有办法区分线端点和任何其他顶点。
您可以通过渲染两条线来获得您想要的效果,其中一条线带有
line-end: round
(不同的颜色),另一条线带有 line-end: butt
。你会得到一个微小的半圆形的东西,这可能比什么都没有好?
似乎还是没有解决办法。请参阅未解决的问题: https://github.com/mapbox/mapbox-gl-js/issues/9937