Skip to content

Commit

Permalink
PLATEAUモデル: 都市設備(CityFurniture)の実装 - 一部のみ (#56)
Browse files Browse the repository at this point in the history
Related #55 (一部のみ実装)

(裏で #58 とかもやってるので、これのレビュー完了はタスク進行のブロッカーになっていません!)

まだ属性を網羅していませんが、小さめにということで、まずこれで方向性が間違っていないか、ご確認いただけないでしょうか。

## 変更

- [x] Codeへの PartialEq, Eq deriveの追加 -
テストで比較するため(`citygml/src/values.rs`)
- [x] CityFurniture用のテストの追加 -
沼津市2021リアルデータを利用(`tests/test_cityfurniture.rs`)
- `tests/models/`
とサブディレクトリも検討しましたが、Cargoの仕組み上、tests直下でないと少々ややこしかったので、ひとまずこのようにフラットに置きました
- [x] CityFurnitureの属性を補充 - `class`,
`function`(`src/models/cityfurniture.rs`)



定義した属性: https://www.mlit.go.jp/plateaudocument/#toc4_14

<img width="1173" alt="image"
src="https://github.com/MIERUNE/nusamai/assets/595008/e3034299-ffa4-4a09-b8df-492449697c82">


## 悩み

- リアルデータには、仕様書にある全属性が存在するわけではない
  - 手元で、テスト用のモックXMLデータを作る?
- 仕様書の読み方がまだわかっておらず、定義すべきものが間違っていないか確証がない
  - https://www.mlit.go.jp/plateaudocument/#toc4_14
  - 例えば、↓にある、 `name`や `description`、はたまた `gen:stringAttribute`なども定義が必要か

<img width="1163" alt="image"
src="https://github.com/MIERUNE/nusamai/assets/595008/1bb926d4-cfa7-4c35-a4eb-152b96b28c21">
  • Loading branch information
sorami authored and ciscorn committed Dec 27, 2023
1 parent 4d19e0c commit cee6598
Show file tree
Hide file tree
Showing 5 changed files with 23,035 additions and 4 deletions.
2 changes: 1 addition & 1 deletion nusamai-plateau/citygml/src/values.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ impl CityGMLElement for URI {
}
}

#[derive(Debug, Default, serde::Serialize, serde::Deserialize)]
#[derive(Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub struct Code {
pub value: String,
pub code: String,
Expand Down
10 changes: 8 additions & 2 deletions nusamai-plateau/src/models/cityfurniture.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use citygml::{CityGMLElement, GeometryRef};
use citygml::{CityGMLElement, Code, GeometryRef};

#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Debug, CityGMLElement)]
Expand All @@ -10,5 +10,11 @@ pub struct CityFurniture {
id: Option<String>,

#[citygml(path = b"frn:class")]
pub class: Option<String>,
pub class: Option<Code>,

#[citygml(path = b"frn:function")]
pub function: Vec<Code>,

#[citygml(path = b"frn:usage")]
pub usage: Vec<Code>,
}
Loading

0 comments on commit cee6598

Please sign in to comment.