使用者使用 FVS三維城市組件 建構三維城市場景時,需要上傳正確的 geojson 檔案,本文即主要介紹 geojson 檔案應包含的一些屬性及其定義。
geojson簡介
geojson 是一種對各種地理資料結構進行編碼的格式,基於Javascript物件表示法(JavaScript Object Notation, 簡稱JSON,FineReport內建中國-area.json也是其中一種)的地理空間資訊資料交換格式。
geojson 物件可以表示幾何、特徵或者特徵集合。
geojson 支援點、線、面、多點、多線、多面等集合型別。
geojson屬性標
FVS三維城市組件 可自動識別的 geojson 屬性包括:
型別 | 屬性 | 支援的 geometry 型別 | 範例 |
---|---|---|---|
命名建築(主要建築) | name: string, building: true, height: number | Polygon MultiPolygon | 既有 building 屬性又有 name 屬性,則在三維城市中會出現該建築的 3D 模型,且建築外立面顏色閃耀,代表建築燈光 |
未命名建筑(其他建筑) | building: true, height: number | Polygon MultiPolygon | 沒有 building 屬性,則在三維城市中不會出現該建築的 3D 模型 只有 building 屬性沒有 name 屬性,則在三維城市中,該建築的名稱不能被識別到,被納入其他建築中,色彩也相較於有名稱的建築更加暗淡 |
命名道路(主要道路) | name: string, road: true | LineString MultiLineString | 既有 road 屬性又有 name 屬性,則在三維城市中顯示該道路,且道路自帶流光效果,表示人流車流 |
未命名道路(其他道路) | road: true | LineString MultiLineString | 沒有 road 屬性,則在三維城市中不會顯示該道路 只有 road 屬性沒有 name 屬性,則在三維城市中,該街道的名稱不能被識別到,被歸入其它街道,街道色澤也更暗淡些 |
草地 | grass: true | Polygon MultiPolygon | ![]() |
水系 | water: true | Polygon MultiPolygon | ![]() |
bbox:calder | null | Polygon MultiPolygon LineString MultiLineString | 特殊屬性: 一些效果依賴於建築範圍,有時,我們希望手動修改這個範圍。 也可以用此方法建立空場景,配合自訂模型使用。 新增一個 Polygon 並作為第一個 feature,新增特殊屬性: "calder:bbox": true 此時場景範圍(bbox)以此 Polygon 為準 範例:
|
geojson屬性檢查規則
FVS 插件 V1.16.1 及之後的版本,新增對 geojson 資料檔案的檢查機制,減少不必要的錯誤解析消耗;同時也能讓正確部分的資料可以根據使用者的選擇是否繼續生成,使得流程可以繼續部分執行下去,減少阻擋點。
基本規則如下:
規則 | 說明 |
---|---|
規則1:Json 格式判斷 | 判斷是否為可編譯 Json 檔案。若是,則繼續執行資料結構校驗;若不是,則提示「geojson檔案無法編譯」,需重新選擇檔案上傳 |
規則2:地物型別屬性完整性 | 檢查每個 feature 中是否存在 building,road,grass ,water,calder:bbox 等關鍵地物型別判斷屬性欄位 |
規則3:feature 的 geometry 屬性的合規性 | 一個 feature 中的 building,road,grass ,water,calder:bbox 等型別,需要與其 geometry 屬性一 一對應,例如 building 的 geometry 為 Polygon,而不能是 line |
規則4:feature 的座標資料結構的合規性 | 檢查每一個 feature 的座標資料結構是否符合規範,例如座標值需要為陣列型別的 coordinates |
規則5:多邊形型別的首尾座標一致 | building,road,grass ,water,calder 的型別為多邊形型別,需要檢查其首尾座標值是否一致,進而才能判斷其生成的三維模型是否閉合 |
注:若資料檢查均不合規,則無法生成場景,需重新上傳檔案;若資料檢查部分不合規,則可選擇是否使用合規資料繼續生成場景。