跳至主要内容

建立圖磚

Overture 主要以 GeoParquet 格式 發佈。雖然 GeoParquet 是一種緊湊的格式,但圖磚對於創建可平移、可縮放的 slippy 地圖以供網頁顯示至關重要。

  • 資料被分解成等尺寸的方形塊(圖磚),以便只載入可見的資料。
  • 圖磚按照詳細程度排列成金字塔,以實現縮小的預覽。

GitHub 上的 overture-tiles

overture-tiles GitHub 儲存庫 包含了從 Overture 資料生成圖磚集的腳本和程式。這些圖磚集設計用於像在 explore.overturemaps.org 進行的 "X-ray" 視覺化,以協助檢查幾何和屬性。它們並不設計為一個可用於生產的製圖底圖。

explore.overturemaps.org

每個 Overture 主題都作為單獨的 PMTiles 存檔儲存。

單個圖磚包含在開放的 MVT 矢量圖磚格式中的幾何和標籤。

存取圖磚

Overture 圖磚在每次發行時生成。目前的測試版圖磚發佈於以下網址:

s3://overturemaps-tiles-us-west-2-beta/RELEASE/THEME.pmtiles

這些公共 S3 URL 也可以通過 HTTP 訪問:

https://overturemaps-tiles-us-west-2-beta.s3.amazonaws.com/RELEASE/THEME.pmtiles

查看圖磚

本地和遠端 HTTP URL 可以在 pmtiles.io 預覽。

在 pmtiles.io 上查看 2024-07-22/places.pmtiles

區域取樣

要為世界的某個部分創建新的圖磚集,請使用 pmtiles CLIextract 指令。

要獲取比利時根特周圍的所有 建築物 圖磚:

pmtiles extract https://overturemaps-tiles-us-west-2-beta.s3.amazonaws.com/2024-07-22/buildings.pmtiles ghent.pmtiles --bbox=3.660507,51.004250,3.784790,51.065996

在 AWS 上

overture-tiles 腳本可以與 AWS Batch 一起自動化,使用 c7gd.16xlarge 型號的 EC2 實例按需生成全球最大圖磚集,大約需要 90 分鐘。產生的費用包括按需實例、S3 存儲和交易成本。

需要事先設定的環境

設定

  1. 修改 bin/overture-tiles-cdk.ts,指定不同的 S3 儲存貯體名稱。

  2. overture-tiles-cdk 儲存庫運行:

npm run cdk bootstrap
npm run cdk deploy
  1. 在網頁控制台中使用 AWS 彈性容器註冊表 (ECR) 認證 Docker 客戶端。使用 View Push Commands 生成 overture-tiles 儲存庫中的 Dockerfile,並推送至 ECR:

explore.overturemaps.org

  1. AWS Batch console 提交作業。

explore.overturemaps.org

  • 選擇可用的 Job Definitions 。每個定義與 Overture 發布版本中的一個版本和主題相關聯。

  • 選擇 OvertureTilesQueue 作為工作佇列。

  • 工作完成後,可在 s3://BUCKET_NAME/RELEASE/THEME.pmtiles拿到圖磚集。

在本地工作站

環境需求

Scripts

  • 使用 這些文檔 將 Overture Parquet 資料集複製到您的本地機器。如果您只想運行一個小樣本資料,可以僅使用目錄中的第一個 .parquet 文件,而不是全部。

  • 對於 basebuildingstransportation 主題,使用 Java 生成圖磚集:

# --data indicates where your Overture data is (overture/theme=base/...)
java -cp planetiler.jar profiles/Base.java --data=overture

上述命令會在 data 目錄中輸出 base.pmtiles

  • 對於其他主題,運行 themes/ 中的主題腳本:
scripts/2024-07-22/places.sh overture places.pmtiles

這個命令從 overture 讀取 Overture 數據,並將結果寫進 places.pmtiles

自訂

Overture 發布的圖磚集主要用於 explore.overturemaps.org。對於您自己的應用,您可能希望:

  • 限制或修改每個特徵的屬性,以減少圖磚大小。
  • 更改在較低縮放級別中包含的特徵或屬性。

在這些範例中,在boston/文件夾中處理波士頓的一個小區域提取,但所有平鋪方法都可以延伸到完整資料集。

mkdir -p boston/theme=buildings/type=building
mkdir -p boston/theme=places/type=place
overturemaps download --bbox=-71.068,42.353,-71.058,42.363 -f geoparquet --type=building -o boston/theme=buildings/type=building/0.geoparquet
overturemaps download --bbox=-71.068,42.353,-71.058,42.363 -f geoparquet --type=place -o boston/theme=places/type=place/0.geoparquet

範例: 地點

默認的 places.sh 腳本包括所有 Overture 屬性,以幫助檢查。如果想要減小圖磚大小,可以刪除 @name 欄位中的所有主要名稱。

請修改 places.sh 以配合您的 Overture 資料公開版本:

  ...
json_object(
'id', id,
'@name', json_extract_string(names, '$.primary')
) AS properties,
...
./scripts/2024-07-22/places.sh boston boston_places.pmtiles

檢查在 pmtiles.io 上創建的 boston_places.pmtiles 以查看簡化過的屬性:

自訂地點圖磚

範例:建築

為了減少圖磚的大小,預設的建築腳本僅在縮放級別 13 上包含所有屬性。您的應用程式可能需要在更低的縮放級別上獲取這些資料。

請修改 profile/Buildings.java 以便在縮放級別 12 上填充所有 Overture 屬性,而不是在縮放級別 13 上:

...
OvertureProfile.addFullTags(source, polygon, 12);
...
java -cp planetiler.jar profiles/Buildings.java --data=boston

檢查在 pmtiles.io 上創建的 data/buildings.pmtiles 以查看在縮放級別 12 上的額外屬性:

自訂建築圖磚