Upgrade to Pro — share decks privately, control downloads, hide ads and more …

toggle BirdView #1 PLATEAU AWARD 2024 グランプリ作品”未...

toggle BirdView #1 PLATEAU AWARD 2024 グランプリ作品”未来地図”から PLATEAUを用いた地図

toggle BirdView #1にて、PLATEAU AWARD 2024 グランプリ作品”未来地図”から PLATEAUを用いた地図として発表した際のスライド

Avatar for HIBARA Himiko

HIBARA Himiko

February 26, 2025

Other Decks in Technology

Transcript

  1. © toggle holdings inc. 3
 2024年5⽉ トグルホールディングス ⼊社 2024年7⽉ つくるAI株式会社出向 (エンジニアは基本的に

    つくるAI所属) 2024年7⽉ マップチーム配属 2024年9⽉ PLATEAUハッカソン参加 2024年10⽉ React, PLATEAU地図作成開始 2025年2⽉15⽇ PLATEAU AWARD グランプリ受賞(エンジニア5名) 出⾝中学校 : 緯度: 35.4908942°経度: 137.7801232° 標⾼約620m 前職 東北⼤学⼤学院情報科学研究科 ⼤林研究室技術補佐員(約5年) 植物遺伝⼦共発現DB ATTED-IIのデータ作成担当 前前職 ヨガインストラクター(約10年) ⾃⼰紹介
  2. © toggle holdings inc. 5
 プロダクト React webアプリケーション S3からデータを読み込み スムーズな地図描画

    ゴール 不動産開発に便利な地図 DeckGL MVTタイルフォーマット GeoJSON MVTタイルフォーマット Mapbox Vector Tile ウェブ地図表⽰のための効率的なベクトルタイル形式 複雑な地理空間データを⼩さなタイルに分割し圧縮 ブラウザでの⾼速な読み込みと拡⼤縮⼩を可能にする GeoJSON→先ほど政岡が解説
  3. © toggle holdings inc. 10
 データ処理の流れ ダウンロード - ⾃治体 -

    年度 解凍とデータクレンジング - 7zで解凍 - 建物ID重複を削除 変換 - GeoJSON - MVTタイル
  4. © toggle holdings inc. 13
 解凍とデータクレンジング 解凍 7z x data/plateau/${key}.zip

    -odata/extracted/${key} 'udx/bldg/*.gml' 'codelists/*.xml' データクレンジング 東京都23区の板橋区、北区、豊島区には建物IDの重複があり、データ変換 (nusamai)でエラーになるので、重複を削除する
  5. © toggle holdings inc. 14
 データフォーマット変換 建物データをCityGMLからGeoJSON変換 nusamai data/extracted/plateau-131*/udx/bldg/*.gml --sink

    geojson --output data/geojson/bldg/tokyo23-ku-2023 -t use_lod=min_lod 建物データをCityGMLからMVTタイルファイル変換 nusamai data/extracted/*/udx/bldg/*.gml --sink mvt --output data/mvt -o min_z=15 -o max_z=15 MIERUNEさんのPLATEAU-GIS-Converterを利⽤
  6. © toggle holdings inc. 15
 変換コマンド例 ⼤阪市福岡市建物データをCityGMLからMVT変換 nusamai data/extracted/plateau-27100-osaka-shi-2022/udx/bldg/*.gml --sink

    mvt --output data/mvt -o min_z=12 -o max_z=15 nusamai data/extracted/plateau-40130-fukuoka-shi-2022/udx/bldg/*.gml --sink mvt --output data/mvt -o min_z=12 -o max_z=15 道路データをCityGMLからGeoJSON, MVTタイルファイル変換 nusamai data/extracted_road/*/udx/tran/*.gml --sink geojson --output data/geojson/road nusamai data/extracted_road/*/udx/tran/*.gml --sink mvt --output data/mvt_road -o min_z=15 -o max_z=15
  7. © toggle holdings inc. 16
 propertiesの例 横浜市 { "buildingDataQualityAttribute": {

    "lod1HeightType": "点群から取得_最⾼⾼さ", "type": "uro:DataQualityAttribute" }, "buildingDetailAttribute": [ { "surveyYear": "2020", "type": "uro:BuildingDetailAttribute" } ], "buildingIDAttribute": [ { "branchID": 1, "buildingID": "14100-bldg-870517", "city": "神奈川県横浜市⼾塚区", "prefecture": "神奈川県", "type": "uro:BuildingIDAttribute" } ], "id": "bldg_89724473-46b5-4677-bc25-094e04e72768", "measuredHeight": 6.9, "type": "bldg:Building" } 東京都 { "address": [ { "type": "core:Address" } ], "buildingDataQualityAttribute": { "geometrySrcDesc": ["空中写真測量"], "lod1HeightType": "点群から取得_中央値", "srcScale": ["地図情報レベル2500"], "thematicSrcDesc": ["都市計画基礎調査"], "type": "uro:DataQualityAttribute" }, "buildingDetailAttribute": [ { "areaClassificationType": "市街化区域", "buildingRoofEdgeArea": 75.08383, "detailedUsage": "独⽴住宅", "districtsAndZonesType": ["第1種住居地域"], "fireproofStructureType": "その他", "landUseType": "住宅⽤地(住宅、共同住宅、店舗等併⽤住宅、店舗等併⽤共同住 宅、作業所併⽤住宅)", "specifiedBuildingCoverageRate": 0.6, "specifiedFloorAreaRate": 3.0, "surveyYear": "2021", "type": "uro:BuildingDetailAttribute", "urbanPlanType": "都市計画区域" } ], "buildingDisasterRiskAttribute": [ { "adminType": "都道府県", "depth": 0.33, "description": "江東内部河川流域", "rank": "0.5m未満", "scale": "L2(想定最⼤規模)", "type": "uro:RiverFloodingRiskAttribute" }, { "depth": 5.82, "description": "東京都⾼潮浸⽔想定(平成30年3⽉)", "rank": "5m以上10m未満", "type": "uro:HighTideRiskAttribute" } ], "buildingIDAttribute": [ { "buildingID": "13123-bldg-114703", "city": "東京都江⼾川区", "prefecture": "東京都", "type": "uro:BuildingIDAttribute" } ], "class": "普通建物", "creationDate": "2024-03-15", "genericAttribute": { "13+区市町村コード+⼤字‧町コード+町‧丁⽬コード": "13123034005", "type": "gen:genericAttribute", "⼤字‧町コード": "34", "延べ⾯積換算係数": "1", "町‧丁⽬コード": "5" }, "id": "bldg_0dec8f05-6cdd-4394-8da9-886d51c06474", "keyValuePairAttribute": [ { "codeValue": "防⽕造", "key": "建物構造コード", "type": "uro:KeyValuePairAttribute" }, { "codeValue": "全階数とも同⼀形状", "key": "延べ⾯積換算コード", "type": "uro:KeyValuePairAttribute" }, { "codeValue": "変化していない", "key": "変化フラグ", "type": "uro:KeyValuePairAttribute" }, { "codeValue": "過年度修正なし", "key": "過年度修正フラグ", "type": "uro:KeyValuePairAttribute" }, { "codeValue": "調整が必要でない建物", "key": "調整フラグ", "type": "uro:KeyValuePairAttribute" }, { "codeValue": "第三種⾼度地区", "key": "⾼度地区", "type": "uro:KeyValuePairAttribute" }, { "codeValue": "準防⽕地域", "key": "防⽕及び準防⽕地域", "type": "uro:KeyValuePairAttribute" } ], "measuredHeight": 7.7, "storeysAboveGround": 2, "storeysBelowGround": 0, "type": "bldg:Building", "usage": ["住宅"] }
  8. © toggle holdings inc. 17
 地物情報のプロパティ 現実的な対応策 - GeoJSON変換したデータから、データ構造を確認したり、地図として 描画して使える値が⼊っているかを確認する

    - 地図を描画する際に、tooltipやJavaコンソールに、プロパティを表⽰ させ、値が⼊っている割合、具体的な値やその種類を確認する PLATEAUデータの地物情報を確認した結果 - ⾃治体と年度で仕様が異なる - 具体的なスキーマのキーが異なる - キーがあっても値がない項⽬も多い
  9. © toggle holdings inc. 19
 Project PLATEAUを利⽤した地図レイヤー PLATEAU道路 - 道路ポリゴンを描画

    現況建物⽤途 - ⽤途に基づく⾊分け - 階数に基づくフィルタリング 現況容積率 - 敷地のデータは他のものを使っている - buildingRoofEdgeArea, 延べ⾯積換算係数, storeysAboveGroundなどの情報か ら算出 - フィルタリング プロダクトのためのレイヤー作成 知りたいことが浮かび上がる地図を作る = 地物情報を解析することで、使えそうなデータを拾い出し、加⼯
  10. © toggle holdings inc. 22
 PLATEAUを使った地図作成 対応策 - 地物属性の解析(GeoJSONや描画) -

    労⼒に⾒合う価値が⽣まれるなら頑張る 特性理解 - オープンデータ、⾃治体ごとに作成したものの集合 - スキーマが異なり、使えない値しか⼊っていないキーも混在 - ⾮公開の⾃治体もある - ⾃治体による様々な差はあるけれど、とても便利