Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
FOSS4G KYUSHU 2025
Search
sasaki MIERUNE
August 09, 2025
46
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
FOSS4G KYUSHU 2025
asdf
sasaki MIERUNE
August 09, 2025
More Decks by sasaki MIERUNE
See All by sasaki MIERUNE
From Boring XML to 3D Tiles: Building a Geological Borehole Viewer with CesiumJS
groovyjovy
0
85
ボーリングデータを可視化してみる
groovyjovy
0
31
AIと共に乗りこなす 地理空間情報の世界
groovyjovy
0
19
AIと共に乗りこなす 地理空間情報の世界
groovyjovy
1
79
huyuyasumi_lt_ssk.pdf
groovyjovy
0
76
ブログを作ってみる
groovyjovy
0
63
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
370
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
エンジニアに許された特別な時間の終わり
watany
109
250k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
210
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
510
Discover your Explorer Soul
emna__ayadi
2
1.3k
Building Applications with DynamoDB
mza
96
7.2k
Transcript
FOSS4GKYUSHU 2025 Supabaseを使って高速に WebGISを構築する 佐々木 遥人
©Project PLATEAU / MLIT Japan 株式会社MIERUEでWebGISを作っていま す。元々は土木業界で建設コンサルをやってい たのですが、ITが面白すぎて転職しました。 IT業界3年目!位置情報1年目! 自己紹介
佐々木 遥人 SASAKI Haruto WebGISエンジニア
©Project PLATEAU / MLIT Japan 自己紹介 •普段はTSでフロントバックを書い ています。趣味でRustも時々。 •土、ボーリングデータに関心があ り、柱状図を3Dで可視化したり、
土の色を判別しやすくしたりして います
©OpenStreetMap contributors 01 Supabaseとは 02 高速にWebGISを構築する 03 その他ヨサミ・ツラミ 04 まとめ・宣伝 目次
©OpenStreetMap contributors 01 Supabaseとは
©Project PLATEAU / MLIT Japan Supabaseとは •Backend as a service
•IaaSよりもさらに抽象度の高いも のを提供している。 •サービスをSQLで管理する •「すーぱーべーす」がよりネイティ ブに近い発音らしい What is Supabase ? https://x.com/kiwicopple/status/191 6813407350911292
©Project PLATEAU / MLIT Japan Supabaseとは • DB、ストレージ、静的ファイルのキャッシュ、認証、定期実行、などの一般的な Web開発に利用されるコンポーネントが高い抽象度で提供されている •
それらを繋ぎこみが容易。直接的な価値を提供することのないインフラを高速 で構築することができる。 • それらは(ほぼ)SQLで記述されており、サービスを構築する上ではSQLをか ければ良い。 Why use Supabase ?
©Project PLATEAU / MLIT Japan Supabaseとは •ストレージを作成するSQL SQLでサービスを記述する例
©OpenStreetMap contributors 02 高速にWebGISを構築する
©Project PLATEAU / MLIT Japan 高速にWebGISを構築する •WebGISでタイル配信をする時は主に動的タイル、静的タイルの2つの 配信方式が存在する •今回は以下の場合を考える ◦
動的タイル: DBからMVTをリクエスト毎に生成して配信 ◦ 静的タイル: ストレージにPMTilesを配置して配信 Supabase ✖ WebGIS
©Project PLATEAU / MLIT Japan 高速にWebGISを構築する • Supabaseの裏側で動作しているのはPostgreSQL • なので、MVTを返すことができるPostGIS拡張機能を利用できる
◦ 他にも日本語検索で便利なPGroongaなど、様々なものが利用可能で ある • また、SupabaseではPostgRESTという拡張機能を用いることで、DBの関 数を作成し、それをSupabaseのクライアントから呼び出すことができる 動的タイル
©Project PLATEAU / MLIT Japan 高速にWebGISを構築する •PostgreSQLに関数を定義する
©Project PLATEAU / MLIT Japan 高速にWebGISを構築する •Supabaseのクライアントから呼 び出せる
©Project PLATEAU / MLIT Japan 高速にWebGISを構築する •定期的に実行する処理を PostgreSQLの関数に定義して、 定期的に実行させる
©Project PLATEAU / MLIT Japan 高速にWebGISを構築する •PMTilesが配置されるサーバーはHTTP Range Requestに対応し ている必要がある
◦ Supabase Storageは上記に対応しているので、問題なく利用 できる •さらに、Storageの設定さえしてしまえばCDNでキャッシュされる 静的タイル
©Project PLATEAU / MLIT Japan 高速にWebGISを構築する •ストレージを作成するSQL
©Project PLATEAU / MLIT Japan 高速にWebGISを構築する •Supabaseのクライアントから署 名付きURLを生成 •MaplibreでPMTilesを読み込む
©OpenStreetMap contributors 03 その他ヨサミ・ツラミ
©Project PLATEAU / MLIT Japan その他ヨサミ・ツラミ •特にTypeScriptとの相性がよく、DBから型を自動生成してくれる •上記の型とSupabase クライアントを利用することで、Prismaなどの ORMを利用することなくフロントエンドとバックエンドとの通信をより近
い距離感で行うことができる •工数の削減が実現でき、より良い成果物を提供することができる ヨサミ
©Project PLATEAU / MLIT Japan その他ヨサミ・ツラミ • DBのブランチング機能がある ◦ アプリに破壊的な変更を加える時、ブランチングされているとレビュー
がしやすい ◦ フロントをVercel、AWS Amplify、Cloudflareにデプロイするとフ ロントもバックもPRごとにブランチングされた環境が構築できる ◦ 💰はみないことにする ヨサミ
©Project PLATEAU / MLIT Japan その他ヨサミ・ツラミ •IaCが辛い ◦ DBの設定以外の部分(SSOの設定や、JWTの有効期限)は Terraformで設定することができる、対応していない部分がある
◦ 直接APIを叩けば解決するものもある ツラミ
©Project PLATEAU / MLIT Japan その他ヨサミ・ツラミ •Supabaseで対応できない要件が出てきた時にどうするか問題 ◦ 管理するコンポーネントが増えてしまい、2つのインフラ間で連携 を取らなければいけないシチュエーションが出てくると本末転倒感
がある •ただ、成長中のサービスなのでもっと機能が補強されていくはず ツラミ
©OpenStreetMap contributors 04 まとめ・宣伝
©Project PLATEAU / MLIT Japan まとめ・宣伝 •Supabaseを使って動的タイル、静的タイルは簡単に配信できる! •説明だけではわかりづらいことがたくさんあったと思います。すみません いかがだったでしょうか?
©Project PLATEAU / MLIT Japan ヨサミ・ツラミ •FOSS4G Hokkaido 2025で 「SupabaseでWebGISを構築す
る」というタイトルでハンズオンをや ります •今回の内容をやるつもりなので、ご 興味があればぜひ来て下さい ハンズオンやります!