Maki图标并非全部显示

时间:2019-04-08 06:56:22

标签: mapbox-gl-js

我正在尝试构建一个地图,允许用户为其geojson点选择图标。我只想使用默认的地图样式(街道|户外|浅|暗|卫星)和Maki图标,但是,并非所有图标都显示在所有样式上。

例如,在所有地图样式中均显示“自行车”和“咖啡馆”,仅在卫星上显示“圆圈”,而在其中任何一个上均不显示“标记”。

在我为其他目的开发的一种样式上,即使我知道我没有做任何特别的事情来将它们“添加”到样式中,所有标记也都可以正常显示。

所以,我的代码不是问题,我的问题是默认样式上的maki图标的可用性。我本以为它们可以在所有样式上使用,但似乎没有。

如何确定哪些图标可以在所有默认样式中使用(缺少反复试验)? 有什么方法可以“启用”样式中的所有图标?

如果没有,我必须做自己的基本样式版本,我想可以,但是如何确保所有图标都已载入样式?

1 个答案:

答案 0 :(得分:2)

标准的Mapbox样式已经过优化,并且不包含任何不需要显示的样式。因此,不包括样式本身未使用的图标。

创建新样式时,我认为Mapbox默认包含整个Maki集。

如果您可以直接修改样式文件(JSON),则可以尝试更改此行(对于Mapbox Streets样式):

"sprite": "mapbox://sprites/mapbox/streets-v9",

等同于您的一种自定义样式,例如:

sprite": "mapbox://sprites/woowoowoo/htd32t6hd236t",

但是,如果Mapbox Street中有不符合您风格的图标,则可能会导致问题。

简而言之,我认为没有添加“所有图标”的简单方法。每种样式都有其自己的图标集。

更好的方法可能是在运行时使用addImage / loadImage来加载所需的自定义图标。参见this example