0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Geospatial Hubのshpファイルからベクトルタイルを作成する

Last updated at Posted at 2024-08-19

はじめに

国連のGeospatial HubのページがCarto tileで使用されているベクトルタイルの元データとなっているので、その元データからベクトルタイルを作成してみることにします。本当はデータが少し異なるようですが、ほとんど同じようなので今回は練習としてGeoHubのデータを扱います。Carto tileはこちらのページで見ることが出来ます。

shpファイルをダウンロードする

Geospatial Hubのページから、Dataのページに飛びます。その中から、「UN Geodata stylized」を選択します。さらにArcGISのページに行くことで、データがダウンロード出来ます。データが非常に簡略化されているため、サイズは小さく342KBしかありませんでした。

shpファイルの中身を確認する

ダウンロードしたshpファイルの中身をQGISで見てみます。shpファイルが8つありますが、使用するデータは以下の2つです。
・BNDL_stylized(BNDLはBoundary Lineのことだと思われます。)
・BNDA_stylized(BNDAはBoundary Areaのことだと思われます。)

Coordinate Reference System (CRS)を見てみると、「Eckert IV (world)_2」というものが使用されています。

スクリーンショット 2024-08-18 11.44.18.png

調べてみたところ、ArcGIS では、Eckert IV 投影法が標準でサポートされているようですが、QGISでは標準でサポートされていないようでした。始めはQGISでうまく変換出来ないか色々と試していましたが、無理でした。ArcGISではうまくいったので、そのやり方を記載します。

shpファイルのCRSをArcMapで変更する

ArcMapを使用して、「Eckert IV (world)_2」から「WGS 1984(つまりEPSG:4326)」として、新しくshpファイルをエクスポートしました。作成したshpファイルを、QGISでレイヤ情報を表示してみると、CRSが「EPSG:4326 - WGS 84」となっていることが分かります。

スクリーンショット 2024-08-19 10.55.05.png

shpファイルからベクトルタイルに変換する際の情報整理

後にスタイル付けをする際に必要になってくるので、この時点で整理しておきます。

レイヤ名 ソース Min Zoom Max Zoom
bndl BNDL_stylized4326.shp 0 4
bnda BNDA_stylized4326.shp 0 4

shpファイルをGeoJSONファイルに変換する

次にCRSを変更したshpファイルをGeoJSONファイルに変換します。

ogr2ogr -f GeoJSON BNDL_stylized4326.geojson BNDL_stylized4326.shp
ogr2ogr -f GeoJSON BNDA_stylized4326.geojson BNDA_stylized4326.shp

QGISで作成したSHPファイル、GeoJSONファイルを表示したところ以下のようになりました。変換後も、正常に地図が表示されています。
スクリーンショット 2024-08-19 12.27.08.png

GeoJSONファイルからベクトルタイルに変換する

次にGeoJSONファイルからtippecanoeを用いて、ベクトルタイルに変換します。

tippecanoe -e VTstylized --no-tile-compression --no-feature-limit --no-tile-size-limit --drop-rate=1 -Z0 -z4 -L bndl:BNDL_stylized4326.geojson -L bnda:BNDA_stylized4326.geojson

作成したベクトルタイルデータは、こちらのGithub Pagesで公開しています。アドレスは以下です。

https://k96mz.github.io/20240818CartoTileStylized/Data/VTstylized/{z}/{x}/{y}.pbf

まとめ

Geospatial Hubのshpファイルからベクトルタイルを作成しました。CRSの設定のところで、かなり時間を取られましたが、なんとかベクトルタイルを作成することが出来ました。次は作成したベクトルタイルを使用して、Carto Tileと同等の地図をMaplibre GL JSとMaputnikを用いて作成してみたいと思います。

Reference

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?