与Mapbox gl js的多个图标精灵

时间:2016-04-26 14:04:47

标签: javascript mapbox mapbox-gl mapbox-gl-js

在Mapbox.js中你可以为每个标记指定一个图像,有没有办法用Mapbox GL JS做到这一点?或者它是否限制为每个地图一个精灵?标记精灵可能会变得很慢下载。

是否可以一次使用多个精灵?

地图加载后还有办法切换精灵吗?我试图用map.setStyle()重新加载原始样式,但自定义标记不会重新出现。

2 个答案:

答案 0 :(得分:3)

首先,让我们确保我们在术语相同的页面上:

  • A"符号图层功能" (即标记)可以显示"图标"在地图上
  • A"精灵"是"图标"
  • 的集合
  • A" style"有一个"精灵"
  

在Mapbox.js中你可以为每个标记指定一个图像,有没有办法用Mapbox GL JS做到这一点?

每个"符号图层功能"在一个图层内可能会显示不同的图标"使用"令牌"。这是mentioned in our documentation

如果您的"符号图层具有"拥有icon属性,您可以使用

使用该图标
"symbol-icon": "{icon}"
  

是否可以一次使用多个精灵?

您不能同时使用多个精灵。 您可以在图层中使用多个图标。 您可以通过创建多个符号图层为要素使用多个图标。

  

地图加载后还有办法切换精灵吗?

不,这对Mapbox GL JS来说是不可能的。

答案 1 :(得分:0)

按照上面 Lucas 的回答,如果您想在运行时更改某个点的图标,您应该使用另一个图标图像创建一个单独的图层,然后只需从一个图层的源数据中删除该点并将其添加到其他。