2015-10-28 12 views
6

MapBoxのタイルについて少し混乱します。私が理解しているように、タイルはジグソーパズルのように地図の小さな部分です。MapBox MBタイルとベクトルタイル

MBTilesは画像ですが、データを読み取って対話を可能にするデータベースに接続されています。だからマウスを動かすと、カーソルの下にあるレイヤーの詳細を表示できます。

ベクトルタイルストアすべてのベクトルのデータ、そして、彼らはちょうど画像の高速なレンダリングに使用されています。そのようなデータとの相互作用は可能ではありません。

私は間違っていますか?

今、MBTilesにはTileMill、ベクタータイルにはMapBox Studio Classicというツールがあります。私は彼らが異なった目的のためであると思う、インタラクティブマップのための最初のもの、速いレンダリングのための後者。 だからTileMillがnot anymore supportedで、なぜMBStudioが好きですか? MBStudioではインタラクティブマップも作成できますか?

ありがとうございました

答えて

16

これはすばらしい質問です。

mbtileは、ラスタタイルまたはベクトルタイルのいずれかを含むことができるファイルタイプです。 Adobe Illustratorの.aiファイルのように考えると、ベクトルまたはラスタデータを含むことができます。ラスタタイルとベクトルタイルの両方は、mbtileフォーマットにすることができます。

ベクターデータ(シェイプファイル、CSVなど)をCartoCSSスタイルと組み合わせて、Mapnikに渡してタイル画像を作成しました。その後、あなたのタイルを保存し、それらをタイルサーバー経由でWebマップに送ることができます。 Mapbox Studio Classicでは、データをベクトルタイルに変換し、CartoCSSスタイルを作成してデータをスタイルしますが、ブラウザから地図が要求されるまで画像タイルは作成されません。最終的に、マップ上の出力は同じです - ラスタタイルのグリッド。

タイルミルでラスタータイルを使用して作成したインタラクティブ性は、UTFGridで発生しています。これは、イメージタイルの下に位置し、特定の場所に対話性を追加する不可視のラスターレイヤーです。インタラクティブ機能は実際には個々の機能にはまったく関連していません。機能と同じ場所にあります。マップ内の出力もラスタタイルのグリッドになるので、これはMapbox Studio Classicでも可能です。これを行う方法の詳細については、style quickstart guideのMapbox Studio Classicで読むことができます。

質問に答えて、Mapbox Studio Classicへの移行はベクタータイルを利用することでした。それらはラスタ画像タイルよりもずっと小さく、その場でスタイリングすることができます。たとえば、網膜スクリーンに対応するために2つの別々の画像セットを保存する必要はありません。また、同じベクターデータに複数のスタイルを適用することができます。つまり、すべてのスタイルや小さな変更ごとに画像のセット全体を再生成する必要はありません。

+1

このようなインタラクティブ機能を1つのスタイルプロジェクトの複数のレイヤーに追加することは可能でしょうか?あるいは、インタラクティブなUTFGridで複数のスタイルを作成し、別々のレイヤーとしてマップに追加する必要がありますか? – DeLac

+0

FWIWでは、 'mbtiles'仕様(v1.2の時点)はラスタデータのみをサポートしています。しかし、仕様を無視するという習慣が広まっています。その中にベクトルデータを詰め込む。データは通常、圧縮されたマップボックスベクトルタイルの形式です。 – Mohan

0

メタデータテーブルにレコードフォーマット= pbfが含まれている場合、mbtilesはラスタではなくベクトルタイルです。 mbtiles SQLiteデータベースは、Tilesテーブルとtile_data blobフィールドにあるベクタータイルのコンテナにすることができます。PBF -Protocol Buffer - protobuf(https://github.com/google/protobuf - 構造化データをシリアル化する言語中立的な中立メカニックス)Googleによって開発されました。 MapBox Studioのようなツールは、GISベクターデータとデータベースからベクタータイルを作成します

関連する問題