本日より、Mapbox Tiling Service (MTS) 経由で、レシピ機能を使用してタイル化されたデータを直接クラスタ化できるようになりました。ソースデータを事前にクラスタ化したり、タイルセットを手動で作成するために Tippecanoeのようなレガシーツールを使用したりする必要はもうありません。データのクラスタリングは、データ可視化や地図設計のための貴重な機能であり、MTSの新しいクラスタリング機能により、データパイプラインの統合と合理化が容易になります。
多数のポイント数、低ズームレベルのデータセットを可視化
MTSのクラスタリング機能により、ポイント数が多く、ズームレベルが低いデータセットでも、クラスターサークルやヒートマップによるデータ視覚化が可能になり、データが欠落することがなくなります。これにより、ポイント数が多いデータセットのズームレベルが低い場合でも、レイヤーサイズの制限を回避しやすくなります。例えば、開発者はズームレベル4で、大陸全体もしくは大きな国の利用可能な駐車場のクラスターマップを作成することができます。また、デベロッパーは米国全体の不動産ポートフォリオの価値を、ズームレベル3でも見えるヒートマップで作成することができます。
金融および不動産分析を行うCoreLogic社は、CoreLogic InsightサービスでMTSクラスタリングを使用しています。
”MTSクラスタリングにより、ポイントが多いデータセットをクラスタリングするためにTippecanoeのようなタイル化ツールを使用する必要がなくなりました。自社でホスティングしていたTippecanoeのスタックをすべて停止し、データパイプラインをすべてMTSに移行したことで、時間とリソースを節約することができました。” ー CoreLogic、プリンシパルソフトウェアエンジニア、Jin Yi氏
旅行計画サイトでは、ホテルのリストを都市や国ごとにまとめることで、ユーザーが旅行を計画する際にホテルの空き状況を俯瞰できるようになります。
Propertium.ioは最近、不動産マップにクラスタリングを採用しました。
”ポルトガル、スペイン、ブルガリア、ポーランドなどヨーロッパ諸国にまたがる100万件以上の不動産物件を表示することは、技術的に複雑な課題でした。Propertium.ioが処理する膨大なデータ量により、地図の読み込みやズームが遅くなり、スムーズな操作が困難だったのです。特に、クラスタリングなしの状態では、地図上でシームレスな操作性を実現するのはほど遠い状況だったのです。この課題を解決するため、私たちは迅速に対応し、わずか60分でMTSクラスタリングを実装しました。結果として、Propertium.ioのユーザーは、リスボン、マドリッド、ソフィア、ワルシャワなどの都市を含む広範囲の不動産情報を瞬時に把握できるようになりました。投資家は、このプラットフォームを通じて、高いROIが期待できる最適な物件を効率よく見つけ、より賢明な投資判断を下せるようになりました。”ーPropertium.io創設者 Nikita Navalikhin氏
MTSを使用してクラスターデータ可視化を作成するには、次の2ステップが必要です。
1.MTSでクラスタリングデータを作成
MTSでデータをクラスタリングするには、次の2つのステップが必要です。
- 各ポイントに値1を設定してcount機能属性を設定します
- タイル設定でクラスタフィールドを設定します
ステップ1 - count機能属性を設定する
まず、MTSレシピの機能構成にcountと呼ばれる機能属性を追加します。この機能属性の値を1に設定します。MTSは各ポイントを合計してクラスタポイントのカウントを作成します。
ステップ 2 - クラスタリングによるポイントの結合
次に、MTSレシピのタイル構成に結合オブジェクトを追加し、clusterをtrueに設定します。 属性に関係なくすべての機能(クラスタ化するポイントなど)を結合するには、空のgroup_by( “group_by”: [ ])を使用します。 タイルごとに希望するクラスタ化ポイントの数にregion_countを設定します。region_count は 1から16,384までの4の累乗でなければなりません。したがって、有効な値は 1,4,16,64,256,1024,4096,16384 です。
最後に、集約ルールを使用して、各ポイントのcountを合計し、クラスターのポイントカウントを作成します。 追加の集約ルールをここへ追加し、クラスタリングやヒートマップのデータ視覚化で使用したいその他の機能属性を指定することもできます。 例えば、不動産フットプリントのデータセットの総プロパティ値や、都市データセットの総人口を計算することができます。
最終レシピ
最終的なクラスタリングMTSレシピは次のようになります。
クラスタ化されたデータのスタイル設定
タイルセットを公開すると、タイルセットエクスプローラに等間隔に配置されたポイントのセットが表示されます。 スタイル設定がされていないため、これらのポイントはまだクラスターのように見えません。
クラスターを作成するには、円レイヤーまたはヒートマップレイヤーを使用して、データドリブンスタイリングを行うことができます。 円レイヤーは、クラスターのポイント数に基づいて異なるサイズと色の円を作成し、従来のクラスターマップを作成します。また、ポイント数以外の属性に基づいてクラスターに重み付けを行うヒートマップレイヤーを使用することもできます。
以下のコードサンプルではMapbox GL JSを使用しています。Mapbox StudioやMapbox SDK for iOS, Androidでも円とヒートマップのレイヤーを作成できます。
データドリブンのスタイル設定による従来のクラスター円レイヤーの作成
以下のMapbox GL JSコードサンプルでは、クラスターのポイントカウントを使用した円レイヤーのデータドリブンスタイリングを使用しています。ポイントカウントが2以下のクラスターは半径3pxの青い円、2~10のポイントカウントは半径5pxの黄色い円、10以上のポイントカウントは半径10pxのピンクの円で表示されます。
クラスター化されたタイルセットデータを使用したヒートマップの作成
以下の Mapbox GL JS のコードサンプルでは、ヒートマップレイヤーを使用してクラスタ化されたポイントを表示します。「Mapbox GL JSでヒートマップを作成するチュートリアル」では、データソースのヒートマップペイントプロパティを変更する方法について詳しく説明しています。
Mapbox タイリングサービスの継続的な改善
MTSクラスタリングは、追加費用なしですべてのMTSのお客様にご利用いただけます。まずは、MTSに関してはMapboxドキュメントサイトでご覧いただけます。
クラスタリングは、ラスターデータのサポートや、信頼性とコンプライアンスのためのマルチリージョンアーキテクチャなど、Mapboxが最近Mapbox Tiling Serviceに加えた多くの改良点のひとつです。ラスターMTSのドキュメンテーションもあわせてご覧ください。マルチリージョンMTSにご興味をお持ちの場合は、mts-multi-region@mapbox.comまでお問い合わせください。
*本記事は、Mapbox Inc. Blogの翻訳記事です。