Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有Mapbox gl js的多图标精灵_Javascript_Mapbox_Mapbox Gl_Mapbox Gl Js - Fatal编程技术网

Javascript 带有Mapbox gl js的多图标精灵

Javascript 带有Mapbox gl js的多图标精灵,javascript,mapbox,mapbox-gl,mapbox-gl-js,Javascript,Mapbox,Mapbox Gl,Mapbox Gl Js,在Mapbox.js中,您可以为每个标记指定一个图像,是否有任何方法可以使用Mapbox GL js实现这一点?或者每个地图只能有一个精灵?标记精灵可能会增长到下载速度较慢的大小 可以同时使用多个精灵吗 还有一种方法可以在地图加载后切换精灵吗?我已尝试使用map.setStyle()重新加载原始样式,但自定义标记不会再次出现。首先,让我们确保我们在术语方面处于同一页: “符号图层特征”(即标记)可在地图上显示“图标” “精灵”是“图标”的集合 “风格”有一个“精灵” 在Mapbox.js中

在Mapbox.js中,您可以为每个标记指定一个图像,是否有任何方法可以使用Mapbox GL js实现这一点?或者每个地图只能有一个精灵?标记精灵可能会增长到下载速度较慢的大小

可以同时使用多个精灵吗


还有一种方法可以在地图加载后切换精灵吗?我已尝试使用map.setStyle()重新加载原始样式,但自定义标记不会再次出现。

首先,让我们确保我们在术语方面处于同一页:

  • “符号图层特征”(即标记)可在地图上显示“图标”
  • “精灵”是“图标”的集合
  • “风格”有一个“精灵”

在Mapbox.js中,您可以为每个标记指定一个图像,是否有任何方法可以使用Mapbox GL js实现这一点

层内的每个“符号层特征”可以使用“标记”显示不同的“图标”。这是

如果“符号图层要素”具有
图标
属性,则可以使要素使用该图标

"symbol-icon": "{icon}"

可以同时使用多个精灵吗

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


还有一种方法可以在地图加载后切换精灵吗


不,这在Mapbox GL JS中是不可能的。

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