XYZTilesについて話す

ここに写真の説明を挿入

XYZTilesとは

特定のサイズとフォーマットに従って、特定の範囲内のマップは、ズームレベルまたはスケールに応じて正方形のラスター画像の行と列の数にカットされます。スライスされた正方形のラスター画像は鮮やかにタイルと呼ばれます。

大きな画像をタイルにカットした後、これらの画像に番号を付けて取得する必要があります。タイルには複数の番号付け方法があり、インターネットマップの製造元ごとに異なる基準があります。XYZTilesは、現在の主流のファイル番号付けと命名規則です。Z(Z = Zoom)はマップのズームレベルを表し、XとYは現在のレベルの画像座標を表します。

ここに写真の説明を挿入

XYZTiles実現原理

通常、マップデータはサイズが大きく、高度なコンピュータグラフィックス処理およびレンダリング機能が必要です。したがって、初期のマップソフトウェアは、ほとんどがデスクトップGISであり、データの処理と送信のほとんどはローカルエリアネットワークで実行されます。

インターネットの急速な発展により、ブラウザ側でマップを使用することがますます緊急になっています。ブラウザ側では、マップアプリケーションは最初からタイルテクノロジーを使用していません。ブラウザ側にはマップ、プロジェクション、スケールの概念はありませんが、ブラウザは画像の処理に優れているため、初期のインターネットマップアプリケーションは通常、サーバー側でマップを画像にレンダリングしてブラウザ側に送信し、ブラウザが画像の表示を担当します。画像のサイズは、ブラウザウィンドウのサイズによって決まります。これは、初期のOGC標準WMSの設計アイデアでもあります。WMSの出現は、インターネットマップの進歩を大いに促進しました。

ブラウザウィンドウに応じてサーバー側で大きな画像を生成するには、サーバーの高度なレンダリング機能とネットワーク送信機能が必要です。特にインターネットマップで同時操作がある場合、上記の2つの処理機能は大きな課題です。そのため、キャッシングのアイデアが浮かび上がりました。マップは特定の縮尺に従って事前にサーバー上で生成されました。ユーザーがリクエストすると、リクエストに応じて画像のみが返され、レンダリングプロセスが不要になります。ネットワーク伝送に関しては、単一の大きなマップにはネットワーク伝送に関する特定の要件があり、伝送を長時間待機すると、インターネットマップのエクスペリエンスが大幅に損なわれ、タイルマップ(タイルマップ)が生まれます。

タイルマップは、マップの階層的なセグメンテーションです。通常、最上位レベルには1つのタイル、つまり256 256ピクセルの画像のみが含まれます。次のレベルでは、256256ピクセルの4つの画像で表されます。 、レベルが低いほど、タイルが多くなります。実際、タイルマップで使用されるピラミッドモデルは、複数解像度の階層モデルです。タイルピラミッドの下から上に向かって、解像度はどんどん低くなっていますが、地理的範囲が表されています。絶え間ない。

ここに写真の説明を挿入

タイルはサーバー側に保存されます。ブラウザに表示されるシームレスに接続されたマップ全体は、マップ範囲、ズームレベル、解像度、マップの中心点、マップコントロールのサイズなどに基づいて計算されます。ブラウザに送信され、ステッチ後に表示されます。

たとえば、OpenStreetMapマップリクエストURL:
https //www.openstreetmap.org/#map=5/28.208/113.489

https://www.openstreetmap.org/はマップサーバー、#map = 5 / 28.208 / 113.489はリクエストパラメータ、5はズームレベル、28.208 / 113.489はマップの中心点の経度と緯度です。アドレスをブラウザのアドレスバーに入力して、取得します。次のマップ:

ここに写真の説明を挿入

ブラウザのネットワーク監視を開くと、マップがx、y、zパラメータで構築された一連のタイルで構成されていることがわかります。

ここに写真の説明を挿入

典型的なXYZTilesリクエストURL:

ここに写真の説明を挿入

通常、次のパラメータを含めます。

ここに写真の説明を挿入

QGISにXYZTilesレイヤーを追加します

QGISはバージョン2.18以降XYZタイルをサポートしており、XYZタイルをQGISに追加すると非常に便利です。

QGISを開き、[参照]パネルの[XYZタイル]ノードを右クリックして、ポップアップメニューから[新しい接続]を選択します。

ここに写真の説明を挿入

ポップアップ[XYZ接続]ダイアログボックスで、レイヤー名「OSM」を入力し、URLにOpenStreetMapタイルアドレス(https://tile.openstreetmap.org/{z}/{x}/{y})を入力します。 png、他をデフォルトのままにして、[OK]ボタンをクリックすると、タイルレイヤー接続が確立されます。

ここに写真の説明を挿入

[参照]パネルで、[XYZタイル]ノードを展開し、追加した接続を見つけて、マップウィンドウにドラッグし、レイヤーをロードして表示します。

ここに写真の説明を挿入

一般的なXYZTiles接続

ちょっとしたメリットをお届けしたいと思います。一般的に使用されるXYZTiles接続を次の内容のXMLドキュメントに整理しました。

<!DOCTYPE connections>
<qgsXYZTilesConnections version="1.0">
    <xyztiles name="必应卫星" authcfg="" url="http://ecn.t3.tiles.virtualearth.net/tiles/a{q}.jpeg?g=1" referer="" zmax="19" password="" zmin="1" username=""/>
    <xyztiles name="Esri卫星" authcfg="" url="https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D" referer="" zmax="17" password="" zmin="0" username=""/>
    <xyztiles name="Esri矢量" authcfg="" url="https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D" referer="" zmax="17" password="" zmin="0" username=""/>
    <xyztiles name="Esri地形" authcfg="" url="https://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D" referer="" zmax="13" password="" zmin="0" username=""/>
     <xyztiles name="谷歌矢量" authcfg="" url="https://mt1.google.com/vt/lyrs=m&amp;x=%7Bx%7D&amp;y=%7By%7D&amp;z=%7Bz%7D" referer="" zmax="19" password="" zmin="0" username=""/>
    <xyztiles name="谷歌卫星" authcfg="" url="https://mt1.google.com/vt/lyrs=s&amp;x=%7Bx%7D&amp;y=%7By%7D&amp;z=%7Bz%7D" referer="" zmax="19" password="" zmin="0" username=""/>
    <xyztiles name="OpenStreetMap矢量" authcfg="" url="https://tile.openstreetmap.org/{z}/{x}/{y}.png" referer="" zmax="19" password="" zmin="0" username=""/>
     <xyztiles name="OpenStreetMap地形" authcfg="" url="https://tile.opentopomap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png" referer="Kartendaten: © OpenStreetMap-Mitwirkende, SRTM | Kartendarstellung: © OpenTopoMap (CC-BY-SA)" zmax="17" password="" zmin="1" username=""/>
    <xyztiles name="google地形" authcfg="" url="http://mt0.google.cn/vt/lyrs=t&amp;hl=zh-CN&amp;gl=cn&amp;x={x}&amp;y={y}&amp;z={z}" referer="" zmax="18" password="" zmin="0" username=""/>
    <xyztiles name="天地图影像" authcfg="" url="http://t0.tianditu.com/img_w/wmts?service=wmts&amp;request=GetTile&amp;version=1.0.0&amp;LAYER=img&amp;tileMatrixSet=w&amp;TileMatrix={z}&amp;TileRow={y}&amp;TileCol={x}&amp;style=default&amp;format=tiles&amp;tk=40b190683706230fade806c1ac8c14e8" referer="" zmax="18" password="" zmin="0" username=""/>
    <xyztiles name="天地图注记" authcfg="" url="http://t0.tianditu.com/cva_w/wmts?service=wmts&amp;request=GetTile&amp;version=1.0.0&amp;LAYER=cva&amp;tileMatrixSet=w&amp;TileMatrix={z}&amp;TileRow={y}&amp;TileCol={x}&amp;style=default&amp;format=tiles&amp;tk=40b190683706230fade806c1ac8c14e8" referer="" zmax="18" password="" zmin="0" username=""/>
    <xyztiles name="天地图矢量" authcfg="" url="http://t0.tianditu.com/vec_w/wmts?service=wmts&amp;request=GetTile&amp;version=1.0.0&amp;LAYER=vec&amp;tileMatrixSet=w&amp;TileMatrix={z}&amp;TileRow={y}&amp;TileCol={x}&amp;style=default&amp;format=tiles&amp;tk=40b190683706230fade806c1ac8c14e8" referer="" zmax="18" password="" zmin="0" username=""/>
    <xyztiles name="高德卫星" authcfg="" url="https://webst01.is.autonavi.com/appmaptile?style=6&amp;x={x}&amp;y={y}&amp;z={z}" referer="" zmax="18" password="" zmin="0" username=""/>
    <xyztiles name="高德路网" authcfg="" url="https://wprd01.is.autonavi.com/appmaptile?x={x}&amp;y={y}&amp;z={z}&amp;lang=zh_cn&amp;size=1&amp;scl=2&amp;style=8&amp;ltype=11" referer="" zmax="18" password="" zmin="0" username=""/>
</qgsXYZTilesConnections>

上記のXMLコードをコピーして、ネイティブXMLファイルとして保存し、QGISに直接インポートすることができます。インポート操作のプロセスは次のとおりです。

QGISの[参照]パネルで[XYZTiles]を右クリックし、ポップアップメニューから[接続の読み込み...]を選択します。

ここに写真の説明を挿入

ポップアップの[接続の読み込み]ダイアログボックスで、上に保存したXMLファイルを選択し、[開く]をクリックしてQGISメインウィンドウに戻り、[XYZTiles]ノードを展開すると、インポートされたタイルマップ接続が表示されます。

ここに写真の説明を挿入


呉建陵

2020年7月14日


著作権表示

この記事は再印刷を歓迎します。再印刷するときにソースを示してください。

ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/QGISClass/article/details/107459636