Mapbox GL JS ver.2はオープンソースではなくなってしまいました。

MAPBOX GL JS V2: 3D MAPS + CAMERA API + SKY API LAUNCH

このブログでも何度か紹介したことがあるMapbox社が提供しているWebGLベースの地図ライブラリ Mapbox GL JSのver.2が公開されました。

Camera APIやSky APIなど、三次元での表現力を増すような新しい機能が追加され、またレンダリングスピードも向上しているそうです。

しかし、残念なことにオープンソースではなくなってしまいました。

Mapboxが提供するベースマップ(背景地図)などを使わなければ無料で利用することができたver.1と違い、ver.2はMapboxサービスのアクセストークンが必須となっています。また課金方法も変わっています。

下記、Issuesにver.2での課金について詳しい説明があります。

v2.0 changes merged with updated TOS and license

GL JS is available to developers on pay-as-you-go — no commitments, usage is billed by Map Load, which correlates to page load metrics.

Mapbox GL JSは従量課金制で、ページ読み込み時に発火するMap Loadに応じて請求額が決まりMapboxのサービスを利用しているか否かは関係なくなりました。

FAQでも同じような内容がかかれてます。

Can I still use self-hosted map tiles?

Yes. Developers simply need a Mapbox account and access token to use this v2.

Can I use data or tiles from Google Maps or other non-Mapbox services?

Yes. GL JS is fully interoperable with third party map sources that provide vector or raster tiles in supported formats. Usage of v2 is billed by Map Load to the Mapbox account owner. The license terms make no distinction between data sources.

セルフホスティングしたベースマップを使う場合でもMapboxのアクセストークンは必要になるとのこと、また、サードパーティのベースマップなどを利用していてもMap Loadによって課金は発生しデータソースが何処であろうと関係ないよ、とのことです。

「無料枠もあるし、Mapboxユーザーの90%は無料枠の中で納まっているのでほとんどの人は気にする必要ないよ」とも記載されていますが、そうはいってもver.1と同様の使い方はできなくなりました。

Mapbox社はここ数年間、Web地図に関する技術の先駆者であり、地図に関する様々なオープンソースツールをコミュニティに提供して業界をリードしてきた企業なのですが、その中でも主力といえるWeb地図クライアントライブラリがメジャーバージョンアップによってオープンソースではなくなってしまうということで、関係者一同絶賛大混乱中です。

Web地図クラスタからしてみれば「(Linux系OS)ですが、次のバージョンから有料になります」と言われたような衝撃です。

いい機会なのでDeck.glを全力で推す

「Mapboxはいいサービスだし今後も使っていくだろうけど、サードパーティのベースマップ使っている時とかでも課金されちゃうのはなー」という人が、今現在Web地図クラスタのなかに多数いるかと思うので、このチャンスを逃さず全力でDeck.glを推したいと思います。

Deck.gl

現時点で私の一押しWebGL系地図ライブラリです。

ほとんどのサンプルがMapboxのベースマップを読み込んで作られているためか、Hacker Newsを見ていても「Deck.glってMapboxに依存したライブラリでしょ」という誤解が見られますが、Deck.glはこれ単体で利用できますし、Mapbox以外のベースマップを読み込んで使うことも簡単です。

deck.glでmapboxサービス以外のベースマップを使用する

もともとは、 Uber社が開発していたものですが、現在ではUrban Computing Foundation(Linux Foundationの一部)の下で開発が進められているので、今回のように途中で突然オープンソースでなくなる危険性はほとんどありません。

機能的にもMapbox GL JS ver.2には届かなくとも、ver.1とほぼ遜色ないぐらいには使えます。

開発も盛んで、今後もバージョンアップに期待できるのでお勧めです。

個人的にはD3.jsと組み合わせやすかったり、公式でreactをサポートしてたりするところが気に入っていたりします。

詳しくはDeck.glカテゴリの記事を。

このBlogに載せているDeck.glの記事もベースマップにReact-map-gl(Mapbox GL ver.1のreact component)を使ったものが多いので、徐々にDeck.gl単独でのサンプルに書き換えていきます。

その他のWebGL系地図ライブラリ

最近、ちょっと他のライブラリを触る時間を作れていないので詳しい説明ができませんが、Deck.gl以外の地図ライブラリを載せておきます。

CesiumJS

 参考:Cesiumとは?基本的な使い方とメリットを詳しく紹介

Mapray

 参考:Maprayを使ってみよう!(前篇)

harp.gl

 参考:地図レンダリングエンジンharp.glについて

Tangram

procedural-gl.js

ちなみに、leaflet系はプラグインを探せば沢山あるようなのですが、沢山ありすぎてどれがいいのかがわからなかったので、とりあえず非掲載。

なにかお勧めがあったらSNS経由とかで教えてもらえるとたすかります。

Mapbox ver.1 フォーク系

オープンソースだったMapbox GL JS ver.1をフォークして進められているプロジェクトです。

maplibre-gl-js

maps-gl

参考:Mapbox GL open-source fork memorandum