OpenStreetMap 轉 3D

OpenStreetMap 轉 3D, 省去整條流程。

常見的做法是用 Overpass 查詢、用 GIS 工具清理、用腳本或附加元件擠出,再用桌面 3D 軟體打光。在 Studio 中只要一步:在地圖上框出範圍,OSM 的建築、道路與水體就會被擠出並呈現在真實地形上。

左側是地圖區域,右側是同一區域被擠出的 3D 模型
OpenStreetMapStudio,一次匯入之後
Studio 的實際輸出。地圖資料 © OpenStreetMap contributors。

不需要查詢語言

你不需要撰寫 Overpass QL 或處理 GeoJSON。只要框出範圍;匯入會向 OpenStreetMap 要求建築、公路、水體與土地利用,並快取結果。

會改變幾何的標籤

height、building:levels 與 min_height 決定建築有多高及從哪裡開始;roof:shape 與 building:part 塑造頂部;highway 等級決定道路寬度;water 與 landuse 標籤決定材質。

正確的單位與位置

一切都會投影成以你所框範圍中心為準的公尺,因此距離是真實的,你自己的模型也能以真實比例放進去。

輸出到你使用的工具

在付費方案中,可將結果匯出為 GLB、glTF、OBJ、FBX 或 STL,供 Blender、Unreal、Unity 或切片軟體使用。

每個標籤會變成什麼

曼哈頓中城的高樓,具階梯式退縮屋頂,緊鄰布萊恩公園
曼哈頓中城:真實屋頂來自 NYC 3-D Building Model,缺漏之處由 OpenStreetMap 補足。

依地圖標註高度建出的建築

輪廓會依標註的高度或樓層數向上擠出,並貼合地面。地圖上標註的屋頂形狀與建築部件會被建出,小型住宅會得到推論的人字形與四坡屋頂,平屋頂則會加上女兒牆與屋頂設備。

匯入的不同寬度街道、一條有橋的河流,以及位於真實地形上的公園區域
依等級劃分的道路、橋梁、水體與土地覆蓋。

街道、水體與綠地

道路依等級決定寬度,附有人行道、車道標線與穿越道,橋梁橫跨水面而不是沒入其中,公園、鋪面與行道樹則填滿其餘空間。

摩納哥的赫丘力港鳥瞰,港內水面一路填到碼頭與棧橋
摩納哥赫丘力港:由 OSM 海岸線建出的海洋。地圖資料 © OpenStreetMap contributors。

由海岸線建出海洋

OpenStreetMap 只以海岸線繪製海洋。匯入會把這些線封閉成水體,因此港口與海灣會一路填到碼頭邊。

Studio 顯示匯入結果,列出已標註與估計的建築高度,旁邊是匯入的城市
在紐約洛克菲勒中心周邊進行城市模式匯入後的匯入報告。

它會告訴你地圖知道什麼

匯入結果會回報有多少棟建築高度來自地圖、有多少棟是估計的,讓你知道天際線可以相信到什麼程度。

Studio 的匯出對話框,選擇了 GLB,位於匯入的下曼哈頓之上
匯入地點的 GLB 匯出。在 Blender 中:File ▸ Import ▸ glTF。

在 Blender 中完成

在付費方案中匯出 GLB 或 FBX 並匯入 Blender:以真實比例的公尺為單位,物件已分離。

為什麼選擇 Mixos

每個標籤會變成什麼

OpenStreetMap 是帶有標籤的點、線與多邊形的資料庫,而不是 3D 模型。要把它變成 3D 模型,就得為每一種要素決定它應該成為什麼幾何。Studio 的匯入依 OSM 社群自己的 3D 慣例所描述的方式做出這些決定。

建築輪廓會成為封閉的底面——包含中庭的孔洞——並依其 height 標籤擠出。如果沒有高度,就以 building:levels 乘以約 3 公尺代替;兩者都沒有時,匯入會估計,並在報告中計入這項估計。min_height 會抬升從地面以上才開始的部分,例如天橋或懸挑。roof:shape 會建出人字形、四坡、錐形、單斜、圓頂或洋蔥形屋頂(複折、孟莎與半四坡屋頂會以最接近的形狀繪製),building:part 則由各部分組成一個地標,未加標籤的小型住宅則會得到推論的人字形或四坡屋頂。每個底面都放在它下方地形的最低點上,因此坡地上不會有任何東西懸空。

公路線會成為一條寬度依其等級而定的條帶——從步道到高速公路——鋪在地形表面上。封閉的水域會成為平坦的水面,而 OpenStreetMap 只以海岸線繪製的海洋,則會依這些海岸線封閉成水體。公園、草地與鋪面等土地利用會成為帶有素材庫材質的地面覆蓋。地形本身來自開放的高程圖磚而非 OSM,因為 OSM 本身沒有高度。

OSM 資料的授權為開放資料庫授權。只要標示 © OpenStreetMap contributors,你就可以使用由它建立的成果,包括商業用途。Studio 會把這項標示與場景一併保存,讓它不會在匯入與算圖之間遺失。

每個標籤會變成什麼

常見問題

如何將 OpenStreetMap 資料轉換成 3D 模型?

在 Studio 中開啟 Real place 選擇器,框出範圍並匯入。建築、道路、水體與土地覆蓋會自動被擠出並鋪在真實地形上。你不需要下載 .osm 檔案或撰寫 Overpass 查詢。

可以把 OSM 建築放進 Blender 嗎?

可以。在 Studio 中建出該區域,然後在付費方案中將它匯出為 GLB 或 FBX,再匯入 Blender。如果你想留在 Blender 內,免費的 BlenderGIS 與 Blosm 附加元件也能匯入 OSM 資料。

它會讀取哪些 OSM 標籤?

帶有 height、building:levels 與 min_height 的建築輪廓;用於道路寬度的 highway 等級;水域;以及用於地面材質的土地利用,如公園、草地與鋪面。

為什麼有些建築的高度不對?

因為地圖沒有說明。當建築沒有高度或樓層標籤時,匯入會估計一個值,並在報告中計入。在 OpenStreetMap 中加上標籤,就能替所有人修正這個問題。

這些資料可以免費商業使用嗎?

可以,依開放資料庫授權,只要標示 © OpenStreetMap contributors。如果你把萃取出的資料本身當作資料庫再散布,ODbL 的相同方式分享條款也同樣適用。

Mixos

省略整條流程。 框出範圍。