Maki图标并非全部显示

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

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

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

在我为另一个目的开发的风格上,所有标记都显示正常,即使我知道我没有做任何特别的事情来“添加”它们的风格。

所以,我的代码不是问题,我的问题是关于默认样式的maki图标的可用性。我原本以为它们都适用于所有风格,但似乎没有。

如何判断哪些图标适用于所有默认样式(缺少试验和错误)?有什么方法可以“启用”样式上的所有图标吗?

如果不这样做,如果我必须制作我自己的基本样式版本,我想我可以,但我如何确保所有图标都加载到样式中?

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

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

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

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

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

在您的一个自定义样式中的等效项,如:

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

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

简而言之,我认为没有一种简单的方法可以添加“所有图标”。每种风格都有自己的一套图标。

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

© www.soinside.com 2019 - 2024. All rights reserved.