4

我的测试代码

     const layer = 
    new IconLayer({
      id: 'icon-layer',
      data,
      getIcon: d=> ({data : 'data/test.svg', width:128, height:128}),
      getSize: d => Math.max(2, Math.min(d.contributions / 1000 * 25, 25)),
      pickable: true,
      sizeScale: 15,
      getPosition: d => [127.14467,31.39953]
    });

我有一个错误。

icon-manager.js:366 DOMException: The source image cannot be decoded.

如何在deck.gl的iconlayer中使用svg?

4

3 回答 3

1

您可以将自己的 svg 上传到 deck.gl,它不必只是一个 url。

看看这个:https ://stackoverflow.com/a/69123265/14954503

于 2021-09-17T15:31:12.910 回答
1

根据API 参考,回调的返回对象getIcon必须包含一个url属性。从文档中:

getIcon: d => ({
  url: d.avatar_url,
  width: 128,
  height: 128,
  anchorY: 128
}),

在您的示例中,您需要将url属性重命名为data.

于 2021-09-17T11:33:21.137 回答
0

我检查了svg文件。svg文件中除英文和数字外的所有语言不得包括在内。例如:韩语、日语……如果只有英文,它可以工作。

于 2021-09-24T04:37:23.750 回答