deck.glで塗りにテクスチャを適用する

この記事はdeck.gl Advent Calendar 2021 参加記事です。

概要

GeoJSONレイヤーなどでポリゴンを描画する際に、塗(fill)にテクスチャを適用する方法です。

サンプルコード

パターンファイル(透過png)を読み込んでポリゴンに網掛けをしています。

解説

FillStyleExtensionをGeoJSONレイヤーに適用することで、塗り(Fill)スタイルを拡張しテクスチャを適用することができます。

extensionはdeck.glとは別にインストールしてください。

マッピング設定にて、パターンファイルとして使用する画像の横幅や縦幅、位置などを正確に設定しないと正しくテクスチャが適用されないので注意してください。

また、設定したマッピングから実際に適用するものを指定するgetFillPatternアクセサはコールバックの中でマッピング名を戻り値として返さないと行けない仕様となっています。

一般的な画像もテクスチャとして適用することができます。

画像をそのまま適用したい場合は、fillPatternMaskを「false」にしてください。

https://codesandbox.io/s/deck-gl-tu-ritubusinitekusutiyawoshi-yong-suru2-myhlg

複数のパターンをポリゴンごとに適用することもできます。

https://codesandbox.io/s/deck-gl-tu-ritubusinitekusutiyawoshi-yong-suru3-x03mg