├── .gitignore ├── 3dmodel_viewer ├── 3dtiles │ ├── index.html │ ├── main.js │ └── style.css ├── READMD.md ├── geojson │ ├── 53392633_bldg_4326_lod2_05.geojson │ ├── index.html │ ├── main.js │ └── style.css └── images │ ├── 3dtiles.jpg │ └── geojson.jpg ├── CHANGELOG.md ├── GEOMEMO.md ├── LICENSE ├── README.md ├── cct.py ├── poetry.lock ├── py_plateau ├── __init__.py ├── building.py ├── city_gml.py └── earcut.py ├── pyproject.toml └── tests ├── __init__.py ├── answer ├── 53392633_bldg_4326_lod0.geojson ├── 53392633_bldg_4326_lod0_00.geojson ├── 53392633_bldg_4326_lod0_01.geojson ├── 53392633_bldg_4326_lod0_02.geojson ├── 53392633_bldg_4326_lod0_03.geojson ├── 53392633_bldg_4326_lod0_04.geojson ├── 53392633_bldg_4326_lod0_05.geojson ├── 53392633_bldg_4326_lod0_06.geojson ├── 53392633_bldg_4326_lod0_07.geojson ├── 53392633_bldg_4326_lod0_08.geojson ├── 53392633_bldg_4326_lod0_09.geojson ├── 53392633_bldg_4326_lod1.geojson ├── 53392633_bldg_4326_lod1_00.geojson ├── 53392633_bldg_4326_lod1_01.geojson ├── 53392633_bldg_4326_lod1_02.geojson ├── 53392633_bldg_4326_lod1_03.geojson ├── 53392633_bldg_4326_lod1_04.geojson ├── 53392633_bldg_4326_lod1_05.geojson ├── 53392633_bldg_4326_lod1_06.geojson ├── 53392633_bldg_4326_lod1_07.geojson ├── 53392633_bldg_4326_lod1_08.geojson ├── 53392633_bldg_4326_lod1_09.geojson ├── 53392633_bldg_4326_lod2.geojson ├── 53392633_bldg_4326_lod2_00.geojson ├── 53392633_bldg_4326_lod2_01.geojson ├── 53392633_bldg_4326_lod2_02.geojson ├── 53392633_bldg_4326_lod2_03.geojson ├── 53392633_bldg_4326_lod2_04.geojson ├── 53392633_bldg_4326_lod2_05.geojson ├── 53392633_bldg_4326_lod2_06.geojson ├── 53392633_bldg_4326_lod2_07.geojson ├── 53392633_bldg_4326_lod2_08.geojson ├── 53392633_bldg_4326_lod2_09.geojson ├── 53392633_bldg_6677_lod0.ply ├── 53392633_bldg_6677_lod0_00.ply ├── 53392633_bldg_6677_lod0_01.ply ├── 53392633_bldg_6677_lod0_02.ply ├── 53392633_bldg_6677_lod0_03.ply ├── 53392633_bldg_6677_lod0_04.ply ├── 53392633_bldg_6677_lod0_05.ply ├── 53392633_bldg_6677_lod0_06.ply ├── 53392633_bldg_6677_lod0_07.ply ├── 53392633_bldg_6677_lod0_08.ply ├── 53392633_bldg_6677_lod0_09.ply ├── 53392633_bldg_6677_lod1.ply ├── 53392633_bldg_6677_lod1_00.ply ├── 53392633_bldg_6677_lod1_01.ply ├── 53392633_bldg_6677_lod1_02.ply ├── 53392633_bldg_6677_lod1_03.ply ├── 53392633_bldg_6677_lod1_04.ply ├── 53392633_bldg_6677_lod1_05.ply ├── 53392633_bldg_6677_lod1_06.ply ├── 53392633_bldg_6677_lod1_07.ply ├── 53392633_bldg_6677_lod1_08.ply ├── 53392633_bldg_6677_lod1_09.ply ├── 53392633_bldg_6677_lod2.ply ├── 53392633_bldg_6677_lod2_00.ply ├── 53392633_bldg_6677_lod2_01.ply ├── 53392633_bldg_6677_lod2_02.ply ├── 53392633_bldg_6677_lod2_03.ply ├── 53392633_bldg_6677_lod2_04.ply ├── 53392633_bldg_6677_lod2_05.ply ├── 53392633_bldg_6677_lod2_06.ply ├── 53392633_bldg_6677_lod2_07.ply ├── 53392633_bldg_6677_lod2_08.ply └── 53392633_bldg_6677_lod2_09.ply ├── conftest.py ├── data ├── 53392633_bldg_6697_2_op.gml └── 53392633_bldg_6697_appearance │ ├── hnap0664.jpg │ ├── hnap0665.jpg │ ├── hnap0666.jpg │ ├── hnap0668.jpg │ ├── hnap0669.jpg │ ├── hnap0670.jpg │ ├── hnap0671.jpg │ ├── hnap0672.jpg │ ├── hnap0675.jpg │ └── hnap0697.jpg ├── test_geojson.py ├── test_ply.py ├── test_poly_and_poly_id.py ├── test_textures.py └── test_transform_coordinate.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | 131 | # private 132 | .idea/ 133 | output/ 134 | data/ 135 | 0*.*/ 136 | -------------------------------------------------------------------------------- /3dmodel_viewer/3dtiles/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 3D Tiles Viewer 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /3dmodel_viewer/3dtiles/main.js: -------------------------------------------------------------------------------- 1 | // Cesium Ionの読み込みアクセストークンを設定 2 | Cesium.Ion.defaultAccessToken = 'your_access_token'; 3 | 4 | // 地形モデルのTerrainデータの指定 5 | var viewer = new Cesium.Viewer('map', { 6 | animation : false, 7 | baseLayerPicker: false, 8 | fullscreenButton: false, 9 | geocoder: false, 10 | homeButton: false, 11 | navigationHelpButton: false, 12 | sceneModePicker: false, 13 | scene3DOnly: true, 14 | timeline: false, 15 | imageryProvider: new Cesium.OpenStreetMapImageryProvider({ 16 | url : 'https://a.tile.openstreetmap.org/' 17 | }), 18 | terrainProvider: Cesium.createWorldTerrain() 19 | }); 20 | 21 | // 航空写真オルソ画像タイルデータ(PLATEAU-Ortho)の指定 22 | /* 23 | var imageProvider = new Cesium.UrlTemplateImageryProvider({ url: 'https://gic-plateau.s3.ap-northeast-1.amazonaws.com/2020/ortho/tiles/{z}/{x}/{y}.png', maximumLevel : 19}); 24 | var current_image = viewer.scene.imageryLayers.addImageryProvider(imageProvider); 25 | */ 26 | 27 | // 建築物モデル等の3DTilesデータ(東京都千代田区の建物データ)の指定 28 | var your_3d_tiles = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({ 29 | // テクスチャなし 30 | // url : 'https://plateau.geospatial.jp/main/data/3d-tiles/bldg/13100_tokyo/13101_chiyoda-ku/notexture/tileset.json' 31 | // テクスチャ付き 32 | // url : 'https://plateau.geospatial.jp/main/data/3d-tiles/bldg/13100_tokyo/13101_chiyoda-ku/texture/tileset.json' 33 | // テクスチャ付き(低解像度) 34 | url : 'https://plateau.geospatial.jp/main/data/3d-tiles/bldg/13100_tokyo/13101_chiyoda-ku/low_resolution/tileset.json' 35 | })); 36 | 37 | // カメラの初期位置の指定 38 | viewer.camera.setView({ 39 | destination : Cesium.Cartesian3.fromDegrees(139.74887, 35.65692, 800.0), 40 | orientation: { 41 | heading : Cesium.Math.toRadians(0.0), // east, default value is 0.0 (north) 42 | pitch : Cesium.Math.toRadians(-10), // default value (looking down) 43 | roll : 0.0 // default value 44 | } 45 | }); 46 | 47 | // マウスクリックで緯度経度を表示 48 | /* 49 | viewer.canvas.addEventListener('click', function(e) { 50 | var mousePosition = new Cesium.Cartesian2(e.clientX, e.clientY); 51 | var ellipsoid = viewer.scene.globe.ellipsoid; 52 | var cartesian = viewer.camera.pickEllipsoid(mousePosition, ellipsoid); 53 | if (cartesian) { 54 | var cartographic = ellipsoid.cartesianToCartographic(cartesian); 55 | var lon = Cesium.Math.toDegrees(cartographic.longitude).toFixed(5); 56 | var lat = Cesium.Math.toDegrees(cartographic.latitude).toFixed(5); 57 | alert(lon + ', ' + lat); 58 | } else { 59 | alert('Globe was not picked'); 60 | } 61 | }, false); 62 | */ -------------------------------------------------------------------------------- /3dmodel_viewer/3dtiles/style.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | padding: 0; 3 | margin: 0; 4 | height: 100%; 5 | } 6 | 7 | #map { 8 | position: absolute; 9 | top: 0; 10 | left: 0; 11 | height: 100%; 12 | width: 100%; 13 | margin: 0; 14 | overflow: hidden; 15 | padding: 0; 16 | font-family: sans-serif; 17 | } 18 | -------------------------------------------------------------------------------- /3dmodel_viewer/READMD.md: -------------------------------------------------------------------------------- 1 | 3D都市空間モデルビューワー 2 | ==== 3 | 4 | ### Cesium 5 | 3D都市空間モデルの表示に[Cesium GS社](https://cesium.com/)の「Cesium ion」や「CesiumJS」を使用します 6 | 「Cesium ion」は、3D地理空間データのためのプラットフォームです。「CesiumJS」は3D地理空間データを視覚化するためのオープンソースのJavaScriptライブラリです 7 | 8 | CesiumJSの利用方法等はチュートリアルやドキュメントを参照してください。 9 | * [CesiumJS (チュートリアル)](https://cesium.com/learn/cesiumjs-learn/) 10 | * [CesiumJS (ドキュメント)](https://cesium.com/learn/cesiumjs/ref-doc/Viewer.html) 11 | * [GIS実習オープン教材 - Cesium入門](https://gis-oer.github.io/gitbook/book/materials/web_gis/Cesium/Cesium.html) 12 | 13 | #### Cesium Access Token取得 14 | CesiumJSを使用する為にはAccess Tokenを取得する必要があります。 15 | Cesium ionのアカウントを作成して、ログイン後にAccess TokensメニューからAccess Tokensを取得します。非商用の個人プロジェクト、研究、非営利の教育活動目的であれば無料です。 16 | 17 | [Cesium ion アカウント作成](https://cesium.com/ion/signup/) 18 | 19 | ### CesiumJSで3D地理空間データの可視化 20 | Access Tokensを取得しmain.jsの「your_access_token」を書き換えてください。 21 | 22 | main.js 23 | ``` 24 | Cesium.Ion.defaultAccessToken = 'your_access_token'; 25 | ``` 26 | 27 | #### GeoJSONファイル 28 | GeoJSONを表示させます 29 | ``` 30 | $ cd geojson 31 | $ python -m http.server 8000 32 | https://127.0.0.1:8000/でアクセス 33 | ``` 34 | 表示例 35 | ![](./images/geojson.jpg) 36 | 37 | #### 3DTiles形式のデータ 38 | 3D tiles形式のデータを表示させます 39 | ``` 40 | $ cd 3dtiles 41 | $ python -m http.server 8000 42 | https://127.0.0.1:8000/でアクセス 43 | ``` 44 | 45 | 表示例 46 | ![](./images/3dtiles.jpg) 47 | 48 | ### ワンライナーWebサーバ 49 | CesiumJSの動作確認をする場合は、ワンライナーWebサーバを使用するとよいと思います。ワンライナーWebサーバを起動させて、Webブラウザーから動作確認をしてみてください 50 | 51 | 起動後、Webブラウザーで下記にアクセスしてください。 52 | https://127.0.0.1:8000/ 53 | 54 | #### Python3 55 | Python3は下記で起動させます 56 | 57 | ``` 58 | ワンライナーWebサーバ起動 59 | $ python -m http.server 8000 60 | ``` 61 | #### node.js(http-server) 62 | node.js(http-server)は下記で起動させます 63 | 64 | http-serverをグローバルインストール 65 | ``` 66 | インスト―ル 67 | $ npm install -g http-server 68 | 69 | ワンライナーWebサーバ起動 70 | $ http-server -p 8000 71 | ``` 72 | 73 | http-serverをローカルインストール 74 | ``` 75 | インスト―ル 76 | $ npm install http-server 77 | 78 | ワンライナーWebサーバ起動 79 | $ ./node_modules/.bin/http-server -p 8000 80 | ``` 81 | 82 | ### PLATEAUデータの表示 83 | PLATEAUデータの可視化は下記を参考にしてください 84 | 85 | * [PLATEAU配信サービス(試験運用)-チュートリアル](https://github.com/Project-PLATEAU/plateau-streaming-tutorial) 86 | * [3D都市モデル(Project PLATEAU)ポータルサイト](https://www.geospatial.jp/ckan/dataset/plateau) 87 | - Project PLATEAUが新たに取得したオルソ航空写真はG空間情報センターからGeoTIFF形式で入手可能 88 | 89 | | データセット | 説明 | チュートリアル | 90 | |:----------------|:----------------------------|:----------------------------| 91 | | PLATEAU-3DTiles | 建築物モデル等の3DTilesデータ | plateau-3dtiles-streaming | 92 | | PLATEAU-Terrain | 地形モデルのTerraindbデータ | plateau-terrain-streaming | 93 | | PLATEAU-Ortho | 航空写真オルソ画像タイルデータ | plateau-ortho-streaming | 94 | 95 | * [PLATEAU-3DTiles配信チュートリアル (plateau-3dtiles-streaming)](https://github.com/Project-PLATEAU/plateau-streaming-tutorial/blob/main/3d-tiles/plateau-3dtiles-streaming.md) 96 | * [PLATEAU-Terrain配信チュートリアル (plateau-terrain-streaming)](https://github.com/Project-PLATEAU/plateau-streaming-tutorial/blob/main/terrain/plateau-terrain-streaming.md) 97 | * [PLATEAUオルソ配信チュートリアル (plateau-ortho-streaming)](https://github.com/Project-PLATEAU/plateau-streaming-tutorial/blob/main/ortho/plateau-ortho-streaming.md) 98 | -------------------------------------------------------------------------------- /3dmodel_viewer/geojson/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GeoJSON Viewer 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /3dmodel_viewer/geojson/main.js: -------------------------------------------------------------------------------- 1 | // Cesium ionのアクセストークン 2 | Cesium.Ion.defaultAccessToken = 'your_access_token'; 3 | 4 | // GeoJSONファイル表示 5 | var promise = Cesium.GeoJsonDataSource.load('53392633_bldg_4326_lod2_05.geojson'); 6 | promise.then(function(datasource){ 7 | var viewer = new Cesium.Viewer('map', { 8 | animation : false, 9 | baseLayerPicker: false, 10 | fullscreenButton: false, 11 | geocoder: false, 12 | homeButton: false, 13 | navigationHelpButton: false, 14 | sceneModePicker: false, 15 | scene3DOnly: true, 16 | timeline: false, 17 | imageryProvider: new Cesium.OpenStreetMapImageryProvider({ 18 | // 地理院タイル 色別標高図 https://maps.gsi.go.jp/development/ichiran.html 19 | url: '//cyberjapandata.gsi.go.jp/xyz/relief/' 20 | }), 21 | terrainProvider: Cesium.createWorldTerrain(), 22 | }); 23 | 24 | var layers = viewer.scene.imageryLayers; 25 | var osm = layers.addImageryProvider( 26 | new Cesium.OpenStreetMapImageryProvider() 27 | ); 28 | osm.alpha = 0.6; 29 | 30 | viewer.dataSources.add(datasource); 31 | viewer.zoomTo(datasource); 32 | }); 33 | -------------------------------------------------------------------------------- /3dmodel_viewer/geojson/style.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | padding: 0; 3 | margin: 0; 4 | height: 100%; 5 | } 6 | 7 | #map { 8 | position: absolute; 9 | top: 0; 10 | left: 0; 11 | height: 100%; 12 | width: 100%; 13 | margin: 0; 14 | overflow: hidden; 15 | padding: 0; 16 | font-family: sans-serif; 17 | } 18 | -------------------------------------------------------------------------------- /3dmodel_viewer/images/3dtiles.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/3dmodel_viewer/images/3dtiles.jpg -------------------------------------------------------------------------------- /3dmodel_viewer/images/geojson.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/3dmodel_viewer/images/geojson.jpg -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | In this changelog all modifications to the `citygml-convert-tools` 3 | 4 | ## 2022-11-23 5 | ### Added 6 | * 3D都市空間モデルビューワーを追加 7 | * テクスチャーのコードを追加 8 | 9 | ### Fixed 10 | * none 11 | 12 | ## 2022-11-13 (v0.0.1) 13 | ### Added 14 | * コマンドラインをサブコマンド形式に変更 15 | * PLYとGeoJSONの変換処理を統合 16 | * PLYとGeoJSONのテストを追加 17 | * earcut-pythonのサブモジュールを廃止し、プロジェクトに統合 18 | 19 | ### Fixed 20 | * PLY変換のバグを修正 21 | 22 | ## 2022-11-05 23 | ### Added 24 | * citygml2geojsonを追加 25 | 26 | ### Fixed 27 | * none 28 | -------------------------------------------------------------------------------- /GEOMEMO.md: -------------------------------------------------------------------------------- 1 | Geo関連情報のメモ 2 | --- 3 | 周辺のGeo関連情報のメモ 4 | 5 | ### 平面直角座標系変換 6 | 7 | #### 市区町村名・緯度経度から平面直角座標系を取得するCLIツール 8 | * [市区町村名・緯度経度から平面直角座標系の系番号を取得するツールを作成した!](https://qiita.com/nokonoko_1203/items/f8925081665cab3f36f0) 9 | * [MIERUNE/create_city_feather](https://github.com/MIERUNE/create_gpkg_for_city_boundaries) 10 | * [MIERUNE/search_zone_number](https://github.com/MIERUNE/search_zone_number) 11 | 12 | 13 | ### ファイルフォーマット 14 | * [ESRI Shaplefile](https://www.esri.com/content/dam/esrisites/sitecore-archive/Files/Pdfs/library/whitepapers/pdfs/shapefile.pdf) 15 | * [Shaplefile](https://www.loc.gov/preservation/digital/formats/fdd/fdd000280.shtml) 16 | * [GeoJSON - GeoJSON · GIS実習オープン教材](https://gis-oer.github.io/gitbook/book/materials/web_gis/GeoJSON/GeoJSON.html) 17 | * [GeoPackage](https://www.geopackage.org/) 18 | * [opengeospatial/geopackage](https://github.com/opengeospatial/geopackage) 19 | * [mapbox/geobuf](https://github.com/mapbox/geobuf 20 | * [flatgeobuf / flatgeobuf](https://github.com/flatgeobuf/flatgeobuf) 21 | * [GeoParquet](https://github.com/opengeospatial/geoparquet) 22 | * [GeoTIFF](https://www.loc.gov/preservation/digital/formats/fdd/fdd000279.shtml) 23 | 24 | #### 参考 25 | * [GeoPandasをやるならFlatGeobufより10倍早いGeoParquetを使おう!](https://qiita.com/nokonoko_1203/items/a01168096c2d4c2d6914) 26 | * [GeoJSONをバイナリ化して圧縮するFlatGeobuf](https://gunmagisgeek.com/blog/data/7222) 27 | 28 | ### 全国地方公共団体コード 29 | * [全国地方公共団体コード](https://www.soumu.go.jp/denshijiti/code.html) 30 | - [JIS X 0401 都道府県コード, (旧 JIS C 6260, ISO3166-2:JP](https://www.jisc.go.jp/app/jis/general/GnrJISNumberNameSearchList?show&jisStdNo=X0401) 31 | - [JIS X 0402 市区町村コード](https://www.jisc.go.jp/app/jis/general/GnrJISNumberNameSearchList?show&jisStdNo=X0402) 32 | - [JIS X 0402:2020]2020年版というように更新版がある。市町村は名前変更、合併などで[改正](https://webdesk.jsa.or.jp/books/W11M0090/index/?bunsyo_id=JIS+X+0402%3A2020)がある 33 | * [日本の標準地域メッシュを生成するツール](https://github.com/MIERUNE/japan-mesh-tool) 34 | 35 | ### 地域メッシュコード 36 | [地域メッシュコード]https://ja.wikipedia.org/wiki/地域メッシュ)は、に、緯度・経度で網の目(メッシュ)に分けたもの。 37 | メッシュの大きさで、第1次メッシュ -> 第2次メッシュ -> 第3次メッシュとメッシュのサイズが異なる 38 | 39 | 第1次メッシュ: 1辺の長さは約80km 40 | 第2次メッシュ: 1辺の長さは約10km 41 | 第3次メッシュ: 1辺の長さは約1km 42 | 43 | * [JIS X 0410:2002地域メッシュコー](https://www.jisc.go.jp/app/jis/general/GnrJISNumberNameSearchList?show&jisStdNo=X0410) 44 | * [JIS X 0410:2002「地域メッシュコード」(日本産業標準調査会、経済産業省)](https://www.jisc.go.jp/app/jis/general/GnrJISNumberNameSearchList?show&jisStdNo=X0410) 45 | 46 | ### ジオコーディング 47 | * [CSVアドレス マッチング サービス(CSIS)](https://geocode.csis.u-tokyo.ac.jp/home/csv-admatch/) 48 | * [GeoNLP](https://geonlp.ex.nii.ac.jp/) 49 | * [IMIコンポーネントツール](https://info.gbiz.go.jp/tools/imi_tools/) 50 | - [IMI](https://imi.go.jp/) 51 | - [GitHub](https://github.com/IMI-Tool-Project) 52 | * [Community Geocoder](https://community-geocoder.geolonia.com/) 53 | - [オープンソースのジオコーディング API ](https://github.com/geolonia/community-geocoder) 54 | - [Geolonia 住所データ](https://github.com/geolonia/japanese-addresses) 55 | - [オープンソースの住所正規化ライブラリです。](https://github.com/geolonia/normalize-japanese-addresses) 56 | * [ExcelGeo (ITDART)](http://excelgeo.itdart.org/) 57 | 58 | #### 参考 59 | * [地番と住居表示の違いは何か](https://登記簿図書館.com/cpu/column/theme01/column03.html) 60 | * [ジオコーディングと住所データ](https://qiita.com/nyampire/items/d74dcde6e57f793ab0c1) 61 | 62 | ### その他 63 | * [位置参照情報(国土交通省)](https://nlftp.mlit.go.jp/isj/) 64 | * [GeoNames.jp](https://geonames.jp/) 65 | * [GeoNLP](http://agora.ex.nii.ac.jp/GeoNLP/) 66 | * [電子国土基本図(地名情報)「住居表示住所」](https://www.gsi.go.jp/kihonjohochousa/jukyo_jusho.html) 67 | * [地名集日本(GAZETTEER OF JAPAN)](https://www.gsi.go.jp/kihonjohochousa/gazetteer.html) 68 | * [OpenAddressess(海外)](https://openaddresses.io/) 69 | 70 | 71 | ---- 72 | 73 | ### リンク集 74 | 75 | #### GIS学習サイト 76 | * [GIS実習オープン教材](https://gis-oer.github.io/gitbook/book/) 77 | * [オンラインGIS教材](https://sites.google.com/view/gis-online-learning/) 78 | * [地理教材共有サイト](https://sites.google.com/view/geoclass2020/) 79 | 80 | #### 雑多なメモ 81 | * [Pythonではじめる地理空間情報(α版) HackMD](https://hackmd.io/@geopythonjp/HkppxtRP5/%2FBBL9R2NVRAaagfWNHHIHhQ) 82 | * [Pythonではじめる地理空間情報 (PyConJP2022版)](https://speakerdeck.com/homata/pythondehazimerudi-li-kong-jian-qing-bao) 83 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | Copyright (c) 2017, homata 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | 11 | "font-awesome" is lisenced under the SIL Open Font License 1.1 12 | https://fontawesome.com/v4.7.0/ 13 | http://scripts.sil.org/OFL -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Python 3](https://img.shields.io/badge/python-3-blue.svg)](https://www.python.org/) 2 | 3 | CityGML変換ツール (citygml-convert-tools) 4 | === 5 | 6 | [CityGML](https://www.mlit.go.jp/plateau/learning/)は、地理空間データのため標準データフォーマットです。 7 | XMLベースで定義されているCityGMLは、中間データフォーマットと言われているように利用サイドが使いやすい形式に変換して利用することを想定されている。 8 | 手軽にCityGMLファイルを変換できるツールを作成した 9 | 10 | コードは出来るだけシンプルにしたかったので、サンプルコードとしてバッサリとコードは簡潔にしてます。 11 | エラー処理やテスト等も省略している部分があります。何かの参考にしていただければ幸いです 12 | 13 | ### about py_plateau module 14 | 15 | ``` 16 | $ python cct.py --version 17 | 18 | CityGML convert tools (CCT) v0.0.1 19 | ``` 20 | 21 | #### Features 22 | 23 | - リポジトリルートに配置されているcct.pyを利用することで、py_plateauモジュールを利用したCityGMLの変換が可能 24 | - 以下の機能が利用可能 25 | - CityGMLファイル → PLYファイル変換 26 | - CityGMLファイル → GeoJSONファイル変換 27 | - 建物(bldg)のみ対応 28 | - LOD0, LOD1, LOD2対応 29 | - テクスチャは非対応 30 | - [緯度経度]、[経度緯度]の変換対応 31 | - 建物(bldg)分割 32 | 33 | ※1 2D座標系に変換する場合も3D座標で[longitude, latitude, height]に変換します 34 | 35 | #### Usage 36 | 37 | ##### Main 38 | 39 | ``` 40 | $ python cct.py --help 41 | 42 | Usage: cct.py [OPTIONS] COMMAND [ARGS]... 43 | 44 | CityGML convert tools (CCT) v0.0.1 45 | 46 | Options: 47 | --version Show the version and exit. 48 | -d, --debug / --no-debug debug mode 49 | -v, --verbose verbose mode 50 | --help Show this message and exit. 51 | 52 | Commands: 53 | geojson Convert CityGML file to GeoJSON file 54 | ply Convert CityGML file to PLY file 55 | ``` 56 | 57 | ##### CityGMLファイル → PLYファイル変換 58 | ``` 59 | $ python cct.py ply --help 60 | 61 | Usage: cct.py ply [OPTIONS] FILENAME 62 | 63 | Convert CityGML file to PLY file 64 | 65 | Options: 66 | -o, --output TEXT output path name 67 | -s, --to-srid TEXT output SRID(EPSG) 68 | -l, --lod INTEGER RANGE output lod type [0<=x<=2] 69 | -sp, --separate separate the building data 70 | --help Show this message and exit. 71 | ``` 72 | 73 | Examples 74 | ``` 75 | $ python cct.py ply 53392633_bldg_6697_2_op.gml --lod=2 --to-srid=6677 76 | ``` 77 | 78 | ##### CityGMLファイル → GeoJSONファイル変換 79 | ``` 80 | $ python cct.py geojson --help 81 | 82 | Usage: cct.py geojson [OPTIONS] FILENAME 83 | 84 | Convert CityGML file to GeoJSON file 85 | 86 | Options: 87 | -o, --output TEXT output path name 88 | -s, --to-srid TEXT output SRID(EPSG) 89 | -l, --lod INTEGER RANGE output lod type [0<=x<=2] 90 | -sp, --separate separate the building data 91 | -lonlat, --lonlat swap lon lat order 92 | --help Show this message and exit. 93 | ``` 94 | 95 | Examples 96 | ``` 97 | $ python cct.py geojson 53392633_bldg_6697_2_op.gml --lod=2 --to-srid=4326 98 | ``` 99 | 100 | Installation 101 | --- 102 | Pythonと[poetry](https://python-poetry.org/)を利用します。 103 | 104 | ``` 105 | $ git clone git@github.com:GeoPythonJP/citygml-convert-tools.git 106 | $ poetry install 107 | $ poetry shell 108 | ``` 109 | 110 | Changelog 111 | --- 112 | see the [changelog](./CHANGELOG.md). 113 | 114 | 115 | Tests Data 116 | --- 117 | [3D都市モデル(Project PLATEAU)東京都23区](https://www.geospatial.jp/ckan/dataset/plateau-tokyo23ku)のCityGMLの東京都大田区羽田空港三丁目データ ”53392633_bldg_6697_2_op.gml” のみで動作確認 118 | 119 | License 120 | --- 121 | MIT 122 | See the[license](./LICENSE) document for the full text. 123 | 124 | Modules 125 | --- 126 | 下記のモジュールを参考、使用しています。 127 | 各々のライセンスに従ってください。 128 | * [earcut-python](https://github.com/joshuaskelly/earcut-python) 129 | * earcut.py 130 | * [AcculusSasao/plateaupy](https://github.com/AcculusSasao/plateaupy) 131 | * [ksasao/PlateauCityGmlSharp](https://github.com/ksasao/PlateauCityGmlSharp/) 132 | * [cityjson/cjio](https://github.com/cityjson/cjio) 133 | 134 | 135 | Contributors 136 | --- 137 | | GitHub | Twitter | 138 | |-------------------------------------------------|-----------------------------------------------------| 139 | | [homata](http://github.com/homata) | [@homata](https://twitter.com/homata) | 140 | | [nokonoko1203](https://github.com/nokonoko1203) | [@nokonoko_1203](https://twitter.com/nokonoko_1203) | 141 | 142 | CityGMLビューワー 143 | --- 144 | CityGMLファイルを表示させる下記のツールがあります。 145 | 146 | * Windows版 147 | * [FZKViewer](https://www.iai.kit.edu/1302.php) 148 | * [FZKViewer のインストール(Windows 上)](https://www.kkaneko.jp/tools/win/fzkviewer.html) 149 | * Mac版 150 | * [azul](https://github.com/tudelft3d/azul) 151 | 152 | 座標系のメモ 153 | --- 154 | 座標系の変換等をする場合の参考情報を記述します 155 | 156 | #### CityGMLの座標系 157 | * 日本測地系2011における経緯度座標系と東京湾平均海面を基準とする標高の複合座標参照系: 6697 158 | * 日本測地系2011における経緯度座標系: 6668 159 | 160 | #### 日本の測地系 161 | * [日本の測地系](https://www.gsi.go.jp/sokuchikijun/datum-main.html) 162 | * [わかりやすい平面直角座標系](https://www.gsi.go.jp/sokuchikijun/jpc.html) 163 | 164 | #### EPSG:6697 165 | EPSG:6697というのは「JGD2011 + JGD2011 (vertical) height」という座標参照系でEPSG:6668(JGD2011)とEPSG:6695(JGD2011 (vertical) height)からなる座標系である 166 | 167 | * [EPSG:6697](https://epsg.io/6697): JGD2011 + JGD2011 (vertical) height 緯度、経度、標高 (EPSG:6668+6695) 168 | * [EPSG:6668](https://epsg.io/6668): JGD2011 緯度、経度 169 | * [EPSG:6695](https://epsg.io/6695): JGD2011 (vertical) height 標高単位:m 170 | * [EPSG:6666](https://epsg.io/6666): JGD2011 地心直交座標系 (X, Y, Z) 地球中心のXYZ 単位:m 171 | 172 | #### 日本測地系2011 平面直角座標系:6669-6687 173 | ``` 174 | 系 EPSG (JGD2011) 区域 175 | 1 6669 長崎県、鹿児島県の一部 176 | 2 6670 福岡県、佐賀県、熊本県、大分県、宮崎県、鹿児島県の一部 177 | 3 6671 山口県、島根県、広島県 178 | 4 6672 香川県、愛媛県、徳島県、高知県 179 | 5 6673 兵庫県、鳥取県、岡山県 180 | 6 6674 京都府、大阪府、福井県、滋賀県、三重県、奈良県、和歌山県 181 | 7 6675 石川県、富山県、岐阜県、愛知県 182 | 8 6676 新潟県、長野県、山梨県、静岡県 183 | 9 6677 東京都の一部、福島県、栃木県、茨城県、埼玉県、千葉県、群馬県、神祭川県 184 | 10 6678 青森県、秋田県、山形県、岩手県、宮城県 185 | 11 6679 北海道の一部 186 | 12 6680 北海道の一部 187 | 13 6681 北海道の一部 188 | 14 6682 東京都の一部 189 | 15 6683 沖縄県の一部 190 | 16 6684 沖縄県の一部 191 | 17 6685 沖縄県の一部 192 | 18 6686 東京都の一部 193 | 19 6687 東京都の一部 194 | ``` 195 | 196 | 197 | PLATEAU関連情報 198 | --- 199 | PLATEAU関連情報のメモ 200 | 201 | * [Project PLATEAU](https://www.mlit.go.jp/plateau/) 202 | * [3D都市モデル標準製品仕様書(第2.3版)](https://www.mlit.go.jp/plateau/file/libraries/doc/plateau_doc_0001_ver02.pdf) 203 | * [3D都市モデル標準製品仕様書(第2.3版)(HTML)](https://www.mlit.go.jp/plateaudocument/) 204 | * [3D都市モデル整備のためのBIM活用マニュアル(第1.0版)](https://www.mlit.go.jp/plateau/file/libraries/doc/plateau_doc_0003_ver01.pdf) 205 | * [3D都市モデルのデータ変換マニュアル](https://www.mlit.go.jp/plateau/file/libraries/doc/plateau_doc_0007_ver01.pdf) 206 | * [3D都市モデルのデータ変換マニュアル](https://github.com/Project-PLATEAU/Data-Conversion-Manual-for-3D-City-Model) 207 | * [G空間情報センター](https://www.geospatial.jp/ckan/dataset/plateau) 208 | * [GitHub](https://github.com/Project-PLATEAU) 209 | * [i-都市再生技術仕様(案)/i-UR Technical Materials](https://www.chisou.go.jp/tiiki/toshisaisei/itoshisaisei/iur/index.html) 210 | * [東京都デジタルツイン実現プロジェクト](https://info.tokyo-digitaltwin.metro.tokyo.lg.jp/) 211 | * [CityJSONに変換するcitygml-toolsの日本語マニュアル](https://github.com/tokyo-digitaltwin/citygml-tools) 212 | * [国土交通データプラットフォーム](https://www.mlit-data.jp/platform/) 213 | * [スマートシティ官民連携プラットフォーム](https://www.mlit.go.jp/scpf/) 214 | 215 | ### 仕様と変換ツール類 216 | * [CityGML](https://www.ogc.org/standards/citygml) 217 | * [CityJSON](https://www.cityjson.org/) 218 | * [FME](https://www.safe.com/fme/) 219 | * [3dcitydb/3dcitydb](https://github.com/3dcitydb/3dcitydb) 220 | 221 | ### CityGML 222 | * [CityGML 3.0のGML仕様のドラフト](https://www.ogc.org/standards/requests/257) 223 | 224 | ### i-UR 225 | * i-UR1.4は名前空間及びXMLSchemaファイルの所在が変更されたことに伴い、i-UR1.5に改定されている (https://www.chisou.go.jp/tiiki/toshisaisei/itoshisaisei/iur) 226 | 227 | ### 3dcitydb 228 | TBD 229 | 230 | ### CityJSON 231 | TBD 232 | 233 | ### OpenStreetMap 234 | * [JA:MLIT PLATEAU/imports outline](https://wiki.openstreetmap.org/wiki/JA:MLIT_PLATEAU/imports_outline) 235 | * [議論:JA talk:MLIT PLATEAU/imports outline](https://wiki.openstreetmap.org/wiki/JA_talk:MLIT_PLATEAU/imports_outline#既存データを編集していたマッパーへの、OSMメッセージ連絡の要否) 236 | * [JA talk:MLIT PLATEAU](https://wiki.openstreetmap.org/wiki/JA_talk:MLIT_PLATEAU) 237 | * [citygml-osm](https://github.com/yuuhayashi/citygml-osm) 238 | * [citygml-osm wiki](https://github.com/yuuhayashi/citygml-osm/wiki/Transformation) 239 | * [Plateau建物データ: OpenStreetMapへのインポート手順(ドラフト)](https://qiita.com/nyampire/items/1c10afdd36750c87154d) 240 | 241 | ### 便利なツール 242 | * [CloudCompare](https://cloudcompare.org/) 243 | * [Meshlab](https://www.meshlab.net/) 244 | * [Blender.jp](https://blender.jp/) 245 | * [Cesium](https://cesium.com/) 246 | * [QGIS](https://qgis.org/) 247 | 248 | ### その他 249 | 250 | 関連情報のメモ 251 | * [Geo関連情報のメモ](./GEOMEMO.md) 252 | 253 | ### 3D都市空間モデルビューワー 254 | 3D都市空間モデルビューワーのサンプルです 255 | 256 | * [3D都市空間モデルビューワー](./3dmodel_viewer/READMD.md) 257 | -------------------------------------------------------------------------------- /cct.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf-8 3 | 4 | import traceback 5 | 6 | import click 7 | 8 | import py_plateau 9 | from py_plateau.city_gml import CityGml, Subset 10 | 11 | 12 | @click.group(help=f"CityGML convert tools (CCT) v{py_plateau.__version__}") 13 | @click.version_option(version=py_plateau.__version__, message="CityGML convert tools (CCT) v%(version)s") 14 | @click.option("-d", "--debug/--no-debug", default=False, help="debug mode") 15 | @click.option("-v", "--verbose", default=False, is_flag=True, help="verbose mode") 16 | @click.pass_context 17 | def main(context, debug, verbose): 18 | context.obj = dict(debug=debug, verbose=verbose) 19 | 20 | 21 | @main.command(help="Convert CityGML file to GeoJSON file") 22 | @click.argument("filename", type=click.Path(exists=True)) # input CityGML file name 23 | @click.option("-o", "--output", "output_path", default="output", help="output path name") 24 | @click.option("-s", "--to-srid", "to_srid", default="4326", help="output SRID(EPSG)") 25 | @click.option("-l", "--lod", "lod", default=2, type=click.IntRange(0, 2), help="output lod type") 26 | @click.option("-sp", "--separate", "separate", default=False, is_flag=True, help="separate the building data") 27 | @click.option("-lonlat", "--lonlat", "lonlat", default=True, is_flag=True, help="swap lon lat order") 28 | @click.pass_context 29 | def geojson(context, filename, output_path, to_srid, lod, separate, lonlat): 30 | """Convert CityGML file to GeoJSON file""" 31 | 32 | try: 33 | if context.obj["verbose"]: 34 | click.echo(f"\nConvert CityGML file to GeoJSON file\n") 35 | click.echo(f" Options:") 36 | click.echo(f' debug={context.obj["debug"]}') 37 | click.echo(f' verbose={context.obj["verbose"]}') 38 | click.echo(f" filename={filename}") 39 | click.echo(f" output_path={output_path}") 40 | click.echo(f" to_srid={to_srid}") 41 | click.echo(f" lod={lod}") 42 | click.echo(f" separate={separate}") 43 | click.echo(f" lonlat={lonlat}") 44 | click.echo(f"\n") 45 | 46 | obj_city_gml = CityGml(filename, Subset.GEOJSON, to_srid, separate=separate, lonlat=lonlat) 47 | if lod == 0: 48 | obj_city_gml.lod0() 49 | elif lod == 1: 50 | obj_city_gml.lod1() 51 | elif lod == 2: 52 | obj_city_gml.lod2() 53 | else: 54 | raise Exception(f"ERROR: lod number = {lod}") 55 | 56 | obj_city_gml.write_file(output_path) 57 | 58 | except Exception as e: 59 | click.echo(e) 60 | traceback.print_exc() 61 | 62 | 63 | @main.command(help="Convert CityGML file to PLY file") 64 | @click.argument("filename", type=click.Path(exists=True)) # input CityGML file name 65 | @click.option("-o", "--output", "output_path", default="output", help="output path name") 66 | @click.option("-s", "--to-srid", "to_srid", default="6677", help="output SRID(EPSG)") 67 | @click.option("-l", "--lod", "lod", default=2, type=click.IntRange(0, 2), help="output lod type") 68 | @click.option("-sp", "--separate", "separate", default=False, is_flag=True, help="separate the building data") 69 | @click.pass_context 70 | def ply(context, filename, output_path, to_srid, lod, separate): 71 | """Convert CityGML file to PLY file""" 72 | try: 73 | if context.obj["verbose"]: 74 | click.echo(f"\nConvert CityGML file to PLY file\n") 75 | click.echo(f" Options:") 76 | click.echo(f' debug={context.obj["debug"]}') 77 | click.echo(f' verbose={context.obj["verbose"]}') 78 | click.echo(f" filename={filename}") 79 | click.echo(f" output_path={output_path}") 80 | click.echo(f" to_srid={to_srid}") 81 | click.echo(f" lod={lod}") 82 | click.echo(f" separate={separate}") 83 | click.echo(f"\n") 84 | 85 | obj_city_gml = CityGml(filename, Subset.PLY, to_srid, separate=separate) 86 | if lod == 0: 87 | obj_city_gml.lod0() 88 | elif lod == 1: 89 | obj_city_gml.lod1() 90 | elif lod == 2: 91 | obj_city_gml.lod2() 92 | else: 93 | raise Exception(f"ERROR: lod number = {lod}") 94 | 95 | obj_city_gml.write_file(output_path) 96 | 97 | except Exception as e: 98 | click.echo(e) 99 | traceback.print_exc() 100 | 101 | 102 | if __name__ == "__main__": 103 | main() 104 | -------------------------------------------------------------------------------- /py_plateau/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "0.0.1" 2 | -------------------------------------------------------------------------------- /py_plateau/building.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf-8 3 | 4 | import math 5 | import os 6 | import pdb 7 | from typing import Any, List 8 | 9 | import cv2 10 | import numpy as np 11 | import open3d as o3d 12 | import pyproj 13 | 14 | from .earcut import earcut 15 | 16 | 17 | class BuildingTexture: 18 | """Building texture""" 19 | 20 | def __init__(self): 21 | self.image_uri = "" 22 | self.uv_coords = dict() 23 | 24 | def set_image_uri(self, image_uri): 25 | """Set image URI""" 26 | self.image_uri = image_uri 27 | 28 | def set_uv_coords(self, poly_id, uv_coords): 29 | """Set UV coordinates""" 30 | self.uv_coords[poly_id] = uv_coords 31 | 32 | def search_uv_coords(self, poly_id): 33 | """Search UV coordinates""" 34 | if poly_id in self.uv_coords: 35 | return self.uv_coords[poly_id] 36 | return None 37 | 38 | def convert_image(self, ext=".png", basedir="./"): 39 | """Convert image""" 40 | texture_dir_name = self.image_uri.split("/")[0] 41 | texture_file_name = self.image_uri.split("/")[1] 42 | 43 | converted_file_name = texture_file_name.split(".")[0] + ext 44 | 45 | input_file_path = os.path.join(basedir, self.image_uri) 46 | img = cv2.imread(input_file_path) 47 | 48 | output_file_path = os.path.join(basedir, texture_dir_name, converted_file_name) 49 | cv2.imwrite(output_file_path, img) 50 | 51 | 52 | class BuildingPolygon: 53 | """gml:Polygon""" 54 | 55 | def __init__(self, vertices, poly_id): 56 | # self.verticesはlxml.etree._Elementの要素 57 | self.vertices: Any = vertices 58 | self.poly_id: str = poly_id 59 | 60 | def _str2floats(self): 61 | """x y z -> [x, y, z]""" 62 | return np.array([float(i) for i in self.vertices.text.split(" ")]) 63 | 64 | def get_coords(self): 65 | return self._str2floats().reshape((-1, 3)) 66 | 67 | def check_poly_id(self, poly_id): 68 | """Check poly_id""" 69 | return self.poly_id == poly_id 70 | 71 | 72 | class Building: 73 | """bldg:Building""" 74 | 75 | def __init__(self, from_srid="6697", to_srid="6677", lonlat=False): 76 | # super().__init__() 77 | self.polygons = [] 78 | self.properties = None 79 | 80 | self.vertices = [] 81 | self.triangles = [] 82 | self.triangle_meshes = [] 83 | self.textures = [] 84 | 85 | self.lonlat = lonlat 86 | 87 | # pyproj.Transformer.from_crs(<変換元座標系>, <変換先座標系> [, always_xy]) 88 | self.transformer = pyproj.Transformer.from_crs(f"epsg:{from_srid}", f"epsg:{to_srid}") 89 | 90 | def get_properties(self): 91 | return self.properties 92 | 93 | def set_properties(self, properties): 94 | self.properties = properties 95 | 96 | def set_textures(self, textures): 97 | self.textures = textures 98 | 99 | def get_vertices(self): 100 | return self.vertices 101 | 102 | def get_triangle_mesh(self): 103 | return self.triangle_meshes 104 | 105 | def transform_coordinate(self, latitude, longitude, height): 106 | xx, yy, zz = self.transformer.transform(latitude, longitude, height) 107 | if self.lonlat: 108 | return np.array([yy, xx, zz]) 109 | else: 110 | return np.array([xx, yy, zz]) 111 | 112 | def create_vertices(self, polygons): 113 | self.polygons = polygons 114 | self.vertices = [] 115 | 116 | for plist in polygons: 117 | vertices = [self.transform_coordinate(*x) for x in plist.get_coords()] 118 | if len(vertices) > 0: 119 | self.vertices.append(vertices) 120 | 121 | def find_uv_coords(self, poly_id): 122 | """Find UV coordinates""" 123 | if self.textures: 124 | for texture in self.textures: 125 | uv_coords = texture.search_uv_coords(poly_id) 126 | if uv_coords is not None: 127 | return uv_coords 128 | return None 129 | 130 | def find_target_image_uri(self, poly_id): 131 | """Find target image URI""" 132 | if self.textures: 133 | for texture in self.textures: 134 | if texture.search_uv_coords(poly_id) is not None: 135 | return texture.image_uri 136 | return None 137 | 138 | def create_triangle_meshes(self, polygons: List[BuildingPolygon]): 139 | all_uvs = [] 140 | for poly in polygons: 141 | transformed_polygon = [self.transform_coordinate(*x) for x in poly.get_coords()] 142 | # CityGMLと法線計算時の頂点の取扱順序が異なるため、反転させる 143 | transformed_polygon = transformed_polygon[::-1] 144 | transformed_polygon = np.array(transformed_polygon) 145 | 146 | normal = self.get_normal(transformed_polygon)[0] 147 | poly_2d = np.zeros((transformed_polygon.shape[0], 2)) 148 | for i, vertex in enumerate(transformed_polygon): 149 | xy = self.to_2d(vertex, normal) 150 | poly_2d[i] = xy 151 | 152 | vertices_earcut = earcut(np.array(poly_2d, dtype=np.int64).flatten(), dim=2) 153 | 154 | if len(vertices_earcut) > 0: 155 | vertices_length = len(self.vertices) 156 | self.vertices.extend(transformed_polygon) 157 | triangles = np.array(vertices_earcut).reshape((-1, 3)) 158 | triangles_offset = triangles + vertices_length 159 | self.triangles.extend(triangles_offset) 160 | 161 | # 面に対応するUV座標があるかどうか探し、1つに束ねる 162 | # なければダミーを格納することで、全てのメッシュに何かしらのUV座標を割り当てる 163 | uv_coords = self.find_uv_coords(poly.poly_id) 164 | if uv_coords is not None: 165 | all_uvs.extend(uv_coords) 166 | else: 167 | all_uvs.extend([np.zeros((2)) for _ in range(len(transformed_polygon))]) 168 | 169 | # create triangle mesh by Open3D 170 | triangle_meshes = o3d.geometry.TriangleMesh() 171 | triangle_meshes.vertices = o3d.utility.Vector3dVector(self.vertices) 172 | triangle_meshes.triangles = o3d.utility.Vector3iVector(self.triangles) 173 | 174 | triangles = np.array(self.triangles).flatten() 175 | uvs = [all_uvs[index] for index in triangles] 176 | 177 | image_uri_list = [] 178 | for poly in polygons: 179 | image_uri_list.append(self.find_target_image_uri(poly.poly_id)) 180 | # 重複を除去 181 | image_uri_list = list(set(image_uri_list)) 182 | # 最初の1つ目を抽出 183 | image_uri = image_uri_list[0] 184 | 185 | if image_uri is not None and len(image_uri_list) == 1: 186 | # 拡張子をpngに変更 187 | image_uri = image_uri.replace(".jpg", ".png") 188 | texture_file_path = os.path.join("./", image_uri) 189 | 190 | triangle_meshes.triangle_uvs = o3d.utility.Vector2dVector(np.array(uvs)) 191 | triangle_meshes.triangle_material_ids = o3d.utility.IntVector([0] * len(self.triangles)) 192 | triangle_meshes.textures = [o3d.io.read_image(texture_file_path)] 193 | 194 | # 法線の取得 195 | triangle_meshes.compute_vertex_normals() 196 | 197 | self.triangle_meshes = triangle_meshes 198 | self.polygons = polygons 199 | 200 | # 3つ以上の点を渡して、ポリゴンの法線を求める 201 | @staticmethod 202 | def get_normal(poly): 203 | normal = np.array([0.0, 0.0, 0.0], dtype=np.float64) 204 | 205 | for i, _ in enumerate(poly): 206 | next_index = i + 1 207 | 208 | if next_index == len(poly): 209 | next_index = 0 210 | 211 | point_1 = poly[i] 212 | point_1_x = point_1[0] 213 | point_1_y = point_1[1] 214 | point_1_z = point_1[2] 215 | 216 | point_2 = poly[next_index] 217 | point_2_x = point_2[0] 218 | point_2_y = point_2[1] 219 | point_2_z = point_2[2] 220 | 221 | normal[0] += (point_1_y - point_2_y) * (point_1_z + point_2_z) 222 | normal[1] += (point_1_z - point_2_z) * (point_1_x + point_2_x) 223 | normal[2] += (point_1_x - point_2_x) * (point_1_y + point_2_y) 224 | 225 | if (normal == np.array([0.0, 0.0, 0.0])).all(): 226 | return (normal, False) 227 | 228 | normal = normal / math.sqrt(normal[0] * normal[0] + normal[1] * normal[1] + normal[2] * normal[2]) 229 | return (normal, True) 230 | 231 | # 面と法線を渡して、2次元の座標に変換する 232 | @staticmethod 233 | def to_2d(p, n): 234 | x3 = np.array([1.1, 1.1, 1.1]) 235 | 236 | if (n == x3).all(): 237 | x3 += np.array([1, 2, 3]) 238 | x3 = x3 - np.dot(x3, n) * n 239 | x3 /= math.sqrt((x3**2).sum()) 240 | y3 = np.cross(n, x3) 241 | return (np.dot(p, x3), np.dot(p, y3)) 242 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "cct" 3 | version = "0.0.1" 4 | description = "CityGML Convert Tools" 5 | authors = ["Hiroshi Omata "] 6 | readme = "README.md" 7 | packages = [ 8 | { include = "./*.py" }, 9 | { include = "py_plateau/*.py" } 10 | ] 11 | 12 | [tool.poetry.dependencies] 13 | python = "^3.9" 14 | tqdm = "^4.64.1" 15 | cjio = "^0.7.6" 16 | triangle = "^20220202" 17 | lxml = "^4.9.1" 18 | opencv-python = "^4.6.0.66" 19 | opencv-contrib-python = "^4.6.0.66" 20 | argparse = "^1.4.0" 21 | scipy = "^1.9.3" 22 | jupyterlab = "^3.4.8" 23 | open3d = "^0.16.0" 24 | trimesh = "^3.15.8" 25 | pyproj = "^3.4.0" 26 | geopandas = "^0.12.1" 27 | cesiumpy = "^0.3.3" 28 | geopy = "2.0.0" 29 | click = "^8.1.3" 30 | 31 | [tool.poetry.group.dev.dependencies] 32 | pytest = "^5.2" 33 | black = "^22.10.0" 34 | isort = "^5.10.1" 35 | pyproject-flake8 = "^5.0.4.post1" 36 | 37 | [build-system] 38 | requires = ["poetry-core"] 39 | build-backend = "poetry.core.masonry.api" 40 | 41 | 42 | [tool.flake8] 43 | max-line-length = 120 44 | max-complexity = 18 45 | extend-ignore = "E203, E266, W503," 46 | 47 | [tool.black] 48 | line-length = 120 49 | target-version = ['py39'] # Pythonのバージョン 50 | include = '\.py$' # 対象ファイル 51 | # skip-string-normalization = true # ''を""に変換しない設定(好みで変えてください) 52 | 53 | # フォーマットしないファイル 54 | exclude = ''' 55 | ( 56 | \.eggs 57 | | \.git 58 | | \.hg 59 | | \.mypy_cache 60 | | \.tox 61 | | venv 62 | | \.idea 63 | | \.vscode 64 | | \.pytest_cache 65 | | _build 66 | | buck-out 67 | | build 68 | | dist 69 | | migrations 70 | | data 71 | | contrib 72 | | output 73 | ) 74 | ''' 75 | 76 | [tool.isort] 77 | profile = "black" 78 | line_length = 120 79 | skip_glob = "*/migrations/*.py" 80 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/tests/__init__.py -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod0_00.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_1290f570-9df8-4956-bef3-6d0976c835be", "建物ID": "13111-bldg-10", "大字・町コード": "42", "町・丁目コード": "3", "13_区市町村コード_大字・町コード_町・丁目コード": "13111042003", "measured_height_uom": "m", "measured_height": 4.3, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "building_roof_edge_area_uom": "m2", "building_roof_edge_area": 54.15435, "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "survey_year": "2016", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.796362462274828, 35.533082308753507, 7.313 ], [ 139.796432657295497, 35.53311595314706, 7.313 ], [ 139.796422149178568, 35.533130599386389, 7.313 ], [ 139.796430084971917, 35.533134403894564, 7.313 ], [ 139.796408789556324, 35.533164085688433, 7.313 ], [ 139.796400853760218, 35.533160282981655, 7.313 ], [ 139.796390134873263, 35.533175223007945, 7.313 ], [ 139.796319961869045, 35.533141588512052, 7.313 ], [ 139.796330680769529, 35.533126637675181, 7.313 ], [ 139.796320675591545, 35.533121840090644, 7.313 ], [ 139.796341960003474, 35.533092152900387, 7.313 ], [ 139.796351966282629, 35.533096948680736, 7.313 ], [ 139.796362462274828, 35.533082308753507, 7.313 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod0_01.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_f6dddfcb-dfbd-4a3f-b256-993935806dc7", "建物ID": "13111-bldg-11", "大字・町コード": "42", "町・丁目コード": "3", "13_区市町村コード_大字・町コード_町・丁目コード": "13111042003", "measured_height_uom": "m", "measured_height": 20.2, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "building_roof_edge_area_uom": "m2", "building_roof_edge_area": 2044.9503, "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "survey_year": "2016", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.795758365199447, 35.533257390005261, 10.383 ], [ 139.795761918307448, 35.533392061169145, 10.383 ], [ 139.795275504295802, 35.533400631450618, 10.383 ], [ 139.795271811021053, 35.533260926844811, 10.383 ], [ 139.795269237197004, 35.533260970200836, 10.383 ], [ 139.795253905133791, 35.533243610823369, 10.383 ], [ 139.79524863575412, 35.533218942514146, 10.383 ], [ 139.795252167921944, 35.533195433472372, 10.383 ], [ 139.795263691707191, 35.533174162410241, 10.383 ], [ 139.795249797338613, 35.533157435362973, 10.383 ], [ 139.795244491442816, 35.533133047375188, 10.383 ], [ 139.795248037940723, 35.533109544647488, 10.383 ], [ 139.795260619131881, 35.533088510084461, 10.383 ], [ 139.795267252155185, 35.53308843646105, 10.383 ], [ 139.795264256643691, 35.532975041955773, 10.383 ], [ 139.795750682410187, 35.532966499665164, 10.383 ], [ 139.795753810773675, 35.533084969048183, 10.383 ], [ 139.795764223044841, 35.53308456396055, 10.383 ], [ 139.795777167752135, 35.533099558173859, 10.383 ], [ 139.795783103226057, 35.533122108392099, 10.383 ], [ 139.795779391262926, 35.533150793197919, 10.383 ], [ 139.795766530506654, 35.533168591723488, 10.383 ], [ 139.795778935805572, 35.533191073647984, 10.383 ], [ 139.79578256579066, 35.533215261882219, 10.383 ], [ 139.795779949629804, 35.533237534512224, 10.383 ], [ 139.795767962552901, 35.533257011705253, 10.383 ], [ 139.795758365199447, 35.533257390005261, 10.383 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod0_02.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_4dfee8ef-eb9e-440f-9226-749af195b61a", "建物ID": "13111-bldg-14", "大字・町コード": "42", "町・丁目コード": "3", "13_区市町村コード_大字・町コード_町・丁目コード": "13111042003", "measured_height_uom": "m", "measured_height": 17.2, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "building_roof_edge_area_uom": "m2", "building_roof_edge_area": 1411.48463, "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "survey_year": "2016", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.794310242793671, 35.533270190559797, 19.469 ], [ 139.794369210217695, 35.533296712409097, 19.469 ], [ 139.794360028787793, 35.53331035744813, 19.469 ], [ 139.794417797187435, 35.533337680225245, 19.469 ], [ 139.794426410292175, 35.533324874196296, 19.469 ], [ 139.794485391026541, 35.533351397795663, 19.469 ], [ 139.794476072773648, 35.533365242007392, 19.469 ], [ 139.79447888964134, 35.533366581484863, 19.469 ], [ 139.794381541182844, 35.533504152372409, 19.469 ], [ 139.794038086055906, 35.533341713436471, 19.469 ], [ 139.793716147336312, 35.533189438396555, 19.469 ], [ 139.793845122992082, 35.533007189087847, 19.469 ], [ 139.794167049098689, 35.533159461981057, 19.469 ], [ 139.794135440422508, 35.533204132909127, 19.469 ], [ 139.794189215451411, 35.53322956697933, 19.469 ], [ 139.794198059218758, 35.533216422117206, 19.469 ], [ 139.794257027668351, 35.533242945824682, 19.469 ], [ 139.794247488675751, 35.533257128871611, 19.469 ], [ 139.794301752179109, 35.533282793806585, 19.469 ], [ 139.794310242793671, 35.533270190559797, 19.469 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod0_03.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_9466667b-3444-4596-8466-e67797e50e53", "建物ID": "13111-bldg-16", "大字・町コード": "42", "町・丁目コード": "3", "13_区市町村コード_大字・町コード_町・丁目コード": "13111042003", "measured_height_uom": "m", "measured_height": 28.0, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "building_roof_edge_area_uom": "m2", "building_roof_edge_area": 3126.2607, "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "survey_year": "2016", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.793209283437534, 35.532959884100812, 18.515 ], [ 139.794408853661508, 35.533532287384219, 18.515 ], [ 139.794394935387174, 35.533551580833489, 18.515 ], [ 139.794374300172933, 35.53358019703137, 18.515 ], [ 139.794330020484324, 35.533641603699444, 18.515 ], [ 139.794188006561484, 35.533838540193464, 18.515 ], [ 139.794124736368218, 35.53380871956039, 18.515 ], [ 139.794124411938839, 35.533809172856024, 18.515 ], [ 139.793897282834791, 35.533700751260533, 18.515 ], [ 139.793771278009046, 35.533640602345727, 18.515 ], [ 139.793769693378266, 35.533642809339526, 18.515 ], [ 139.793196123554651, 35.533369058492653, 18.515 ], [ 139.793064357093925, 35.533306173892349, 18.515 ], [ 139.793063386022425, 35.533307487800471, 18.515 ], [ 139.792986505391355, 35.533271267534168, 18.515 ], [ 139.793209283437534, 35.532959884100812, 18.515 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod0_04.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_943bee21-394f-4efa-b7ab-bfa6fbfd36a4", "建物ID": "13111-bldg-8", "measured_height_uom": "m", "measured_height": 10.3, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.795449961704918, 35.532795933047694, 13.44 ], [ 139.795423052404374, 35.532834090516282, 13.44 ], [ 139.795356235817394, 35.532802611746007, 13.44 ], [ 139.795363003426331, 35.532793016734729, 13.44 ], [ 139.795329477741461, 35.532777218259213, 13.44 ], [ 139.795400666027462, 35.532676485549736, 13.44 ], [ 139.79541137842557, 35.532661523073273, 13.44 ], [ 139.795412251598464, 35.532661934383491, 13.44 ], [ 139.795416989907409, 35.532655211473688, 13.44 ], [ 139.795470919362828, 35.532680635107972, 13.44 ], [ 139.795462739332947, 35.53269223348093, 13.44 ], [ 139.795507571068271, 35.532713354592175, 13.44 ], [ 139.795469293853472, 35.53276763714905, 13.44 ], [ 139.795449961704918, 35.532795933047694, 13.44 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod0_05.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_bdc161ef-9ae3-4a6c-b554-8a2ce507e6c8", "建物ID": "13111-bldg-147335", "measured_height_uom": "m", "measured_height": 48.7, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.794777316304504, 35.532775084279393, 17.164 ], [ 139.794775364571194, 35.532777156861684, 17.164 ], [ 139.794745516907767, 35.53284599849453, 17.164 ], [ 139.794762262693581, 35.532851425735991, 17.164 ], [ 139.794742239863467, 35.532891442126015, 17.164 ], [ 139.794727837025107, 35.53288677640829, 17.164 ], [ 139.794717336172653, 35.532910992601941, 17.164 ], [ 139.794546330353654, 35.532859968404907, 17.164 ], [ 139.794546446270402, 35.532859699826759, 17.164 ], [ 139.794544752246736, 35.532860152683149, 17.164 ], [ 139.79454474821253, 35.532857078928295, 17.164 ], [ 139.794549634516187, 35.532852348181166, 17.164 ], [ 139.794592738706683, 35.532752947288863, 17.164 ], [ 139.794605836113647, 35.532722692599279, 17.164 ], [ 139.794607340785006, 35.532719275897669, 17.164 ], [ 139.794778334209411, 35.532770309920686, 17.164 ], [ 139.794776850494173, 35.532773731138057, 17.164 ], [ 139.794777316304504, 35.532775084279393, 17.164 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod0_06.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_8bba10da-0963-41ef-9d81-b82f74f36f13", "建物ID": "13111-bldg-9", "大字・町コード": "42", "町・丁目コード": "3", "13_区市町村コード_大字・町コード_町・丁目コード": "13111042003", "measured_height_uom": "m", "measured_height": 30.3, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "building_roof_edge_area_uom": "m2", "building_roof_edge_area": 528.84248, "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "survey_year": "2016", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.794184284630091, 35.532794681544253, 23.308 ], [ 139.794230421530159, 35.532816210983519, 23.308 ], [ 139.794178127509099, 35.532891113380224, 23.308 ], [ 139.794130787762185, 35.532869030074323, 23.308 ], [ 139.794129106074678, 35.532871320871244, 23.308 ], [ 139.794141087906297, 35.532876929633275, 23.308 ], [ 139.79410585042325, 35.53292343371325, 23.308 ], [ 139.794094684418923, 35.532918225432127, 23.308 ], [ 139.79407858918637, 35.532940156518777, 23.308 ], [ 139.794089169654029, 35.532945332160672, 23.308 ], [ 139.794027187453139, 35.533030079968057, 23.308 ], [ 139.794020187823179, 35.533026658699328, 23.308 ], [ 139.794017868678594, 35.533033606789516, 23.308 ], [ 139.794000074551263, 35.533022939299777, 23.308 ], [ 139.793986460985707, 35.533041490955661, 23.308 ], [ 139.793970258992545, 35.53303354258518, 23.308 ], [ 139.793963483655943, 35.533042774253566, 23.308 ], [ 139.793950691625611, 35.533036494572372, 23.308 ], [ 139.793957462551333, 35.533027264706028, 23.308 ], [ 139.793932751659298, 35.533015133788361, 23.308 ], [ 139.793949610548168, 35.53299216817053, 23.308 ], [ 139.793947693341494, 35.532991230996124, 23.308 ], [ 139.793944277868917, 35.532989562301857, 23.308 ], [ 139.793940580917763, 35.532992978279005, 23.308 ], [ 139.793919187418794, 35.533022993117456, 23.308 ], [ 139.79391864927544, 35.533023005561105, 23.308 ], [ 139.793914694611999, 35.533021234832276, 23.308 ], [ 139.793911278092111, 35.533019451659705, 23.308 ], [ 139.793934351114871, 35.532987081127452, 23.308 ], [ 139.793937066184014, 35.532984572533501, 23.308 ], [ 139.793972391791186, 35.532936259434365, 23.308 ], [ 139.793950319121535, 35.532925474260921, 23.308 ], [ 139.79394928516669, 35.532926882802087, 23.308 ], [ 139.793913966294895, 35.532909556386535, 23.308 ], [ 139.794015574031761, 35.532771104786661, 23.308 ], [ 139.794017805437448, 35.532772198905008, 23.308 ], [ 139.794021556080452, 35.532767196489395, 23.308 ], [ 139.794055674492085, 35.532758692136056, 23.308 ], [ 139.794065228327554, 35.532745679117397, 23.308 ], [ 139.79410160884845, 35.532763513319296, 23.308 ], [ 139.79410987824204, 35.532752245879514, 23.308 ], [ 139.794187489101176, 35.532790312626211, 23.308 ], [ 139.794184284630091, 35.532794681544253, 23.308 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod0_07.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_9b519583-dd03-44fa-ae02-5c81743fdf88", "建物ID": "13111-bldg-147334", "measured_height_uom": "m", "measured_height": 12.6, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.7946993787792, 35.533107332093493, 15.742 ], [ 139.794590343602579, 35.533055635524754, 15.742 ], [ 139.794570715843975, 35.533083302914434, 15.742 ], [ 139.794561952153799, 35.53307914737551, 15.742 ], [ 139.794531042295915, 35.533122712622202, 15.742 ], [ 139.794542033017422, 35.533127928017549, 15.742 ], [ 139.794530164974503, 35.533144656775924, 15.742 ], [ 139.794519172045142, 35.533139443181589, 15.742 ], [ 139.794512649309041, 35.533148636202029, 15.742 ], [ 139.794343399594652, 35.533068371064083, 15.742 ], [ 139.794479108010648, 35.53287707956359, 15.742 ], [ 139.794596431435423, 35.532932585483451, 15.742 ], [ 139.794766297477167, 35.533013000096631, 15.742 ], [ 139.7946993787792, 35.533107332093493, 15.742 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod0_08.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_ede55277-ede8-44fe-9ed1-827c5fd4c3fe", "建物ID": "13111-bldg-12", "大字・町コード": "42", "町・丁目コード": "3", "13_区市町村コード_大字・町コード_町・丁目コード": "13111042003", "measured_height_uom": "m", "measured_height": 7.6, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "building_roof_edge_area_uom": "m2", "building_roof_edge_area": 258.47797, "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "survey_year": "2016", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.796388354702401, 35.533332321005801, 10.8115 ], [ 139.796387764356837, 35.533333143797613, 10.8115 ], [ 139.79632388777199, 35.533422213482659, 10.8115 ], [ 139.796318908993925, 35.533429156293572, 10.8115 ], [ 139.796288180030416, 35.533414428898944, 10.8115 ], [ 139.796286243471286, 35.53341712707752, 10.8115 ], [ 139.796144171773307, 35.533349030816076, 10.8115 ], [ 139.796217471996755, 35.533246786647446, 10.8115 ], [ 139.796249266563649, 35.533205464810784, 10.8115 ], [ 139.796373702479798, 35.533265119400916, 10.8115 ], [ 139.79634286572707, 35.53330515166904, 10.8115 ], [ 139.796360496934398, 35.533313604037872, 10.8115 ], [ 139.79635763348108, 35.533317596335188, 10.8115 ], [ 139.796388354702401, 35.533332321005801, 10.8115 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod0_09.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_7263c902-41e5-44bd-bce1-4d308a26d9da", "建物ID": "13111-bldg-7", "measured_height_uom": "m", "measured_height": 7.0, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.795278837854795, 35.532665125662916, 10.44 ], [ 139.795364772595235, 35.532705614521753, 10.44 ], [ 139.795321798888864, 35.532766578488548, 10.44 ], [ 139.795235864105052, 35.53272608959945, 10.44 ], [ 139.795278837854795, 35.532665125662916, 10.44 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod1_00.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_1290f570-9df8-4956-bef3-6d0976c835be", "建物ID": "13111-bldg-10", "大字・町コード": "42", "町・丁目コード": "3", "13_区市町村コード_大字・町コード_町・丁目コード": "13111042003", "measured_height_uom": "m", "measured_height": 4.3, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "building_roof_edge_area_uom": "m2", "building_roof_edge_area": 54.15435, "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "survey_year": "2016", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.796362462274828, 35.533082308753507, 3.602 ], [ 139.796351966282629, 35.533096948680736, 3.602 ], [ 139.796341960003474, 35.533092152900387, 3.602 ], [ 139.796320675591545, 35.533121840090644, 3.602 ], [ 139.796330680769529, 35.533126637675181, 3.602 ], [ 139.796319961869045, 35.533141588512052, 3.602 ], [ 139.796390134873263, 35.533175223007945, 3.602 ], [ 139.796400853760218, 35.533160282981655, 3.602 ], [ 139.796408789556324, 35.533164085688433, 3.602 ], [ 139.796430084971917, 35.533134403894564, 3.602 ], [ 139.796422149178568, 35.533130599386389, 3.602 ], [ 139.796432657295497, 35.53311595314706, 3.602 ], [ 139.796362462274828, 35.533082308753507, 3.602 ] ] ], [ [ [ 139.796362462274828, 35.533082308753507, 3.602 ], [ 139.796432657295497, 35.53311595314706, 3.602 ], [ 139.796432657295497, 35.53311595314706, 7.313 ], [ 139.796362462274828, 35.533082308753507, 7.313 ], [ 139.796362462274828, 35.533082308753507, 3.602 ] ] ], [ [ [ 139.796432657295497, 35.53311595314706, 3.602 ], [ 139.796422149178568, 35.533130599386389, 3.602 ], [ 139.796422149178568, 35.533130599386389, 7.313 ], [ 139.796432657295497, 35.53311595314706, 7.313 ], [ 139.796432657295497, 35.53311595314706, 3.602 ] ] ], [ [ [ 139.796422149178568, 35.533130599386389, 3.602 ], [ 139.796430084971917, 35.533134403894564, 3.602 ], [ 139.796430084971917, 35.533134403894564, 7.313 ], [ 139.796422149178568, 35.533130599386389, 7.313 ], [ 139.796422149178568, 35.533130599386389, 3.602 ] ] ], [ [ [ 139.796430084971917, 35.533134403894564, 3.602 ], [ 139.796408789556324, 35.533164085688433, 3.602 ], [ 139.796408789556324, 35.533164085688433, 7.313 ], [ 139.796430084971917, 35.533134403894564, 7.313 ], [ 139.796430084971917, 35.533134403894564, 3.602 ] ] ], [ [ [ 139.796408789556324, 35.533164085688433, 3.602 ], [ 139.796400853760218, 35.533160282981655, 3.602 ], [ 139.796400853760218, 35.533160282981655, 7.313 ], [ 139.796408789556324, 35.533164085688433, 7.313 ], [ 139.796408789556324, 35.533164085688433, 3.602 ] ] ], [ [ [ 139.796400853760218, 35.533160282981655, 3.602 ], [ 139.796390134873263, 35.533175223007945, 3.602 ], [ 139.796390134873263, 35.533175223007945, 7.313 ], [ 139.796400853760218, 35.533160282981655, 7.313 ], [ 139.796400853760218, 35.533160282981655, 3.602 ] ] ], [ [ [ 139.796390134873263, 35.533175223007945, 3.602 ], [ 139.796319961869045, 35.533141588512052, 3.602 ], [ 139.796319961869045, 35.533141588512052, 7.313 ], [ 139.796390134873263, 35.533175223007945, 7.313 ], [ 139.796390134873263, 35.533175223007945, 3.602 ] ] ], [ [ [ 139.796319961869045, 35.533141588512052, 3.602 ], [ 139.796330680769529, 35.533126637675181, 3.602 ], [ 139.796330680769529, 35.533126637675181, 7.313 ], [ 139.796319961869045, 35.533141588512052, 7.313 ], [ 139.796319961869045, 35.533141588512052, 3.602 ] ] ], [ [ [ 139.796330680769529, 35.533126637675181, 3.602 ], [ 139.796320675591545, 35.533121840090644, 3.602 ], [ 139.796320675591545, 35.533121840090644, 7.313 ], [ 139.796330680769529, 35.533126637675181, 7.313 ], [ 139.796330680769529, 35.533126637675181, 3.602 ] ] ], [ [ [ 139.796320675591545, 35.533121840090644, 3.602 ], [ 139.796341960003474, 35.533092152900387, 3.602 ], [ 139.796341960003474, 35.533092152900387, 7.313 ], [ 139.796320675591545, 35.533121840090644, 7.313 ], [ 139.796320675591545, 35.533121840090644, 3.602 ] ] ], [ [ [ 139.796341960003474, 35.533092152900387, 3.602 ], [ 139.796351966282629, 35.533096948680736, 3.602 ], [ 139.796351966282629, 35.533096948680736, 7.313 ], [ 139.796341960003474, 35.533092152900387, 7.313 ], [ 139.796341960003474, 35.533092152900387, 3.602 ] ] ], [ [ [ 139.796351966282629, 35.533096948680736, 3.602 ], [ 139.796362462274828, 35.533082308753507, 3.602 ], [ 139.796362462274828, 35.533082308753507, 7.313 ], [ 139.796351966282629, 35.533096948680736, 7.313 ], [ 139.796351966282629, 35.533096948680736, 3.602 ] ] ], [ [ [ 139.796362462274828, 35.533082308753507, 7.313 ], [ 139.796432657295497, 35.53311595314706, 7.313 ], [ 139.796422149178568, 35.533130599386389, 7.313 ], [ 139.796430084971917, 35.533134403894564, 7.313 ], [ 139.796408789556324, 35.533164085688433, 7.313 ], [ 139.796400853760218, 35.533160282981655, 7.313 ], [ 139.796390134873263, 35.533175223007945, 7.313 ], [ 139.796319961869045, 35.533141588512052, 7.313 ], [ 139.796330680769529, 35.533126637675181, 7.313 ], [ 139.796320675591545, 35.533121840090644, 7.313 ], [ 139.796341960003474, 35.533092152900387, 7.313 ], [ 139.796351966282629, 35.533096948680736, 7.313 ], [ 139.796362462274828, 35.533082308753507, 7.313 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod1_02.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_4dfee8ef-eb9e-440f-9226-749af195b61a", "建物ID": "13111-bldg-14", "大字・町コード": "42", "町・丁目コード": "3", "13_区市町村コード_大字・町コード_町・丁目コード": "13111042003", "measured_height_uom": "m", "measured_height": 17.2, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "building_roof_edge_area_uom": "m2", "building_roof_edge_area": 1411.48463, "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "survey_year": "2016", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.794310242793671, 35.533270190559797, 3.457 ], [ 139.794301752179109, 35.533282793806585, 3.457 ], [ 139.794247488675751, 35.533257128871611, 3.457 ], [ 139.794257027668351, 35.533242945824682, 3.457 ], [ 139.794198059218758, 35.533216422117206, 3.457 ], [ 139.794189215451411, 35.53322956697933, 3.457 ], [ 139.794135440422508, 35.533204132909127, 3.457 ], [ 139.794167049098689, 35.533159461981057, 3.457 ], [ 139.793845122992082, 35.533007189087847, 3.457 ], [ 139.793716147336312, 35.533189438396555, 3.457 ], [ 139.794038086055906, 35.533341713436471, 3.457 ], [ 139.794381541182844, 35.533504152372409, 3.457 ], [ 139.79447888964134, 35.533366581484863, 3.457 ], [ 139.794476072773648, 35.533365242007392, 3.457 ], [ 139.794485391026541, 35.533351397795663, 3.457 ], [ 139.794426410292175, 35.533324874196296, 3.457 ], [ 139.794417797187435, 35.533337680225245, 3.457 ], [ 139.794360028787793, 35.53331035744813, 3.457 ], [ 139.794369210217695, 35.533296712409097, 3.457 ], [ 139.794310242793671, 35.533270190559797, 3.457 ] ] ], [ [ [ 139.794310242793671, 35.533270190559797, 3.457 ], [ 139.794369210217695, 35.533296712409097, 3.457 ], [ 139.794369210217695, 35.533296712409097, 19.469 ], [ 139.794310242793671, 35.533270190559797, 19.469 ], [ 139.794310242793671, 35.533270190559797, 3.457 ] ] ], [ [ [ 139.794369210217695, 35.533296712409097, 3.457 ], [ 139.794360028787793, 35.53331035744813, 3.457 ], [ 139.794360028787793, 35.53331035744813, 19.469 ], [ 139.794369210217695, 35.533296712409097, 19.469 ], [ 139.794369210217695, 35.533296712409097, 3.457 ] ] ], [ [ [ 139.794360028787793, 35.53331035744813, 3.457 ], [ 139.794417797187435, 35.533337680225245, 3.457 ], [ 139.794417797187435, 35.533337680225245, 19.469 ], [ 139.794360028787793, 35.53331035744813, 19.469 ], [ 139.794360028787793, 35.53331035744813, 3.457 ] ] ], [ [ [ 139.794417797187435, 35.533337680225245, 3.457 ], [ 139.794426410292175, 35.533324874196296, 3.457 ], [ 139.794426410292175, 35.533324874196296, 19.469 ], [ 139.794417797187435, 35.533337680225245, 19.469 ], [ 139.794417797187435, 35.533337680225245, 3.457 ] ] ], [ [ [ 139.794426410292175, 35.533324874196296, 3.457 ], [ 139.794485391026541, 35.533351397795663, 3.457 ], [ 139.794485391026541, 35.533351397795663, 19.469 ], [ 139.794426410292175, 35.533324874196296, 19.469 ], [ 139.794426410292175, 35.533324874196296, 3.457 ] ] ], [ [ [ 139.794485391026541, 35.533351397795663, 3.457 ], [ 139.794476072773648, 35.533365242007392, 3.457 ], [ 139.794476072773648, 35.533365242007392, 19.469 ], [ 139.794485391026541, 35.533351397795663, 19.469 ], [ 139.794485391026541, 35.533351397795663, 3.457 ] ] ], [ [ [ 139.794476072773648, 35.533365242007392, 3.457 ], [ 139.79447888964134, 35.533366581484863, 3.457 ], [ 139.79447888964134, 35.533366581484863, 19.469 ], [ 139.794476072773648, 35.533365242007392, 19.469 ], [ 139.794476072773648, 35.533365242007392, 3.457 ] ] ], [ [ [ 139.79447888964134, 35.533366581484863, 3.457 ], [ 139.794381541182844, 35.533504152372409, 3.457 ], [ 139.794381541182844, 35.533504152372409, 19.469 ], [ 139.79447888964134, 35.533366581484863, 19.469 ], [ 139.79447888964134, 35.533366581484863, 3.457 ] ] ], [ [ [ 139.794381541182844, 35.533504152372409, 3.457 ], [ 139.794038086055906, 35.533341713436471, 3.457 ], [ 139.794038086055906, 35.533341713436471, 19.469 ], [ 139.794381541182844, 35.533504152372409, 19.469 ], [ 139.794381541182844, 35.533504152372409, 3.457 ] ] ], [ [ [ 139.794038086055906, 35.533341713436471, 3.457 ], [ 139.793716147336312, 35.533189438396555, 3.457 ], [ 139.793716147336312, 35.533189438396555, 19.469 ], [ 139.794038086055906, 35.533341713436471, 19.469 ], [ 139.794038086055906, 35.533341713436471, 3.457 ] ] ], [ [ [ 139.793716147336312, 35.533189438396555, 3.457 ], [ 139.793845122992082, 35.533007189087847, 3.457 ], [ 139.793845122992082, 35.533007189087847, 19.469 ], [ 139.793716147336312, 35.533189438396555, 19.469 ], [ 139.793716147336312, 35.533189438396555, 3.457 ] ] ], [ [ [ 139.793845122992082, 35.533007189087847, 3.457 ], [ 139.794167049098689, 35.533159461981057, 3.457 ], [ 139.794167049098689, 35.533159461981057, 19.469 ], [ 139.793845122992082, 35.533007189087847, 19.469 ], [ 139.793845122992082, 35.533007189087847, 3.457 ] ] ], [ [ [ 139.794167049098689, 35.533159461981057, 3.457 ], [ 139.794135440422508, 35.533204132909127, 3.457 ], [ 139.794135440422508, 35.533204132909127, 19.469 ], [ 139.794167049098689, 35.533159461981057, 19.469 ], [ 139.794167049098689, 35.533159461981057, 3.457 ] ] ], [ [ [ 139.794135440422508, 35.533204132909127, 3.457 ], [ 139.794189215451411, 35.53322956697933, 3.457 ], [ 139.794189215451411, 35.53322956697933, 19.469 ], [ 139.794135440422508, 35.533204132909127, 19.469 ], [ 139.794135440422508, 35.533204132909127, 3.457 ] ] ], [ [ [ 139.794189215451411, 35.53322956697933, 3.457 ], [ 139.794198059218758, 35.533216422117206, 3.457 ], [ 139.794198059218758, 35.533216422117206, 19.469 ], [ 139.794189215451411, 35.53322956697933, 19.469 ], [ 139.794189215451411, 35.53322956697933, 3.457 ] ] ], [ [ [ 139.794198059218758, 35.533216422117206, 3.457 ], [ 139.794257027668351, 35.533242945824682, 3.457 ], [ 139.794257027668351, 35.533242945824682, 19.469 ], [ 139.794198059218758, 35.533216422117206, 19.469 ], [ 139.794198059218758, 35.533216422117206, 3.457 ] ] ], [ [ [ 139.794257027668351, 35.533242945824682, 3.457 ], [ 139.794247488675751, 35.533257128871611, 3.457 ], [ 139.794247488675751, 35.533257128871611, 19.469 ], [ 139.794257027668351, 35.533242945824682, 19.469 ], [ 139.794257027668351, 35.533242945824682, 3.457 ] ] ], [ [ [ 139.794247488675751, 35.533257128871611, 3.457 ], [ 139.794301752179109, 35.533282793806585, 3.457 ], [ 139.794301752179109, 35.533282793806585, 19.469 ], [ 139.794247488675751, 35.533257128871611, 19.469 ], [ 139.794247488675751, 35.533257128871611, 3.457 ] ] ], [ [ [ 139.794301752179109, 35.533282793806585, 3.457 ], [ 139.794310242793671, 35.533270190559797, 3.457 ], [ 139.794310242793671, 35.533270190559797, 19.469 ], [ 139.794301752179109, 35.533282793806585, 19.469 ], [ 139.794301752179109, 35.533282793806585, 3.457 ] ] ], [ [ [ 139.794310242793671, 35.533270190559797, 19.469 ], [ 139.794369210217695, 35.533296712409097, 19.469 ], [ 139.794360028787793, 35.53331035744813, 19.469 ], [ 139.794417797187435, 35.533337680225245, 19.469 ], [ 139.794426410292175, 35.533324874196296, 19.469 ], [ 139.794485391026541, 35.533351397795663, 19.469 ], [ 139.794476072773648, 35.533365242007392, 19.469 ], [ 139.79447888964134, 35.533366581484863, 19.469 ], [ 139.794381541182844, 35.533504152372409, 19.469 ], [ 139.794038086055906, 35.533341713436471, 19.469 ], [ 139.793716147336312, 35.533189438396555, 19.469 ], [ 139.793845122992082, 35.533007189087847, 19.469 ], [ 139.794167049098689, 35.533159461981057, 19.469 ], [ 139.794135440422508, 35.533204132909127, 19.469 ], [ 139.794189215451411, 35.53322956697933, 19.469 ], [ 139.794198059218758, 35.533216422117206, 19.469 ], [ 139.794257027668351, 35.533242945824682, 19.469 ], [ 139.794247488675751, 35.533257128871611, 19.469 ], [ 139.794301752179109, 35.533282793806585, 19.469 ], [ 139.794310242793671, 35.533270190559797, 19.469 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod1_03.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_9466667b-3444-4596-8466-e67797e50e53", "建物ID": "13111-bldg-16", "大字・町コード": "42", "町・丁目コード": "3", "13_区市町村コード_大字・町コード_町・丁目コード": "13111042003", "measured_height_uom": "m", "measured_height": 28.0, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "building_roof_edge_area_uom": "m2", "building_roof_edge_area": 3126.2607, "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "survey_year": "2016", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.793209283437534, 35.532959884100812, 3.268 ], [ 139.792986505391355, 35.533271267534168, 3.268 ], [ 139.793063386022425, 35.533307487800471, 3.268 ], [ 139.793064357093925, 35.533306173892349, 3.268 ], [ 139.793196123554651, 35.533369058492653, 3.268 ], [ 139.793769693378266, 35.533642809339526, 3.268 ], [ 139.793771278009046, 35.533640602345727, 3.268 ], [ 139.793897282834791, 35.533700751260533, 3.268 ], [ 139.794124411938839, 35.533809172856024, 3.268 ], [ 139.794124736368218, 35.53380871956039, 3.268 ], [ 139.794188006561484, 35.533838540193464, 3.268 ], [ 139.794330020484324, 35.533641603699444, 3.268 ], [ 139.794374300172933, 35.53358019703137, 3.268 ], [ 139.794394935387174, 35.533551580833489, 3.268 ], [ 139.794408853661508, 35.533532287384219, 3.268 ], [ 139.793209283437534, 35.532959884100812, 3.268 ] ] ], [ [ [ 139.793209283437534, 35.532959884100812, 3.268 ], [ 139.794408853661508, 35.533532287384219, 3.268 ], [ 139.794408853661508, 35.533532287384219, 18.515 ], [ 139.793209283437534, 35.532959884100812, 18.515 ], [ 139.793209283437534, 35.532959884100812, 3.268 ] ] ], [ [ [ 139.794408853661508, 35.533532287384219, 3.268 ], [ 139.794394935387174, 35.533551580833489, 3.268 ], [ 139.794394935387174, 35.533551580833489, 18.515 ], [ 139.794408853661508, 35.533532287384219, 18.515 ], [ 139.794408853661508, 35.533532287384219, 3.268 ] ] ], [ [ [ 139.794394935387174, 35.533551580833489, 3.268 ], [ 139.794374300172933, 35.53358019703137, 3.268 ], [ 139.794374300172933, 35.53358019703137, 18.515 ], [ 139.794394935387174, 35.533551580833489, 18.515 ], [ 139.794394935387174, 35.533551580833489, 3.268 ] ] ], [ [ [ 139.794374300172933, 35.53358019703137, 3.268 ], [ 139.794330020484324, 35.533641603699444, 3.268 ], [ 139.794330020484324, 35.533641603699444, 18.515 ], [ 139.794374300172933, 35.53358019703137, 18.515 ], [ 139.794374300172933, 35.53358019703137, 3.268 ] ] ], [ [ [ 139.794330020484324, 35.533641603699444, 3.268 ], [ 139.794188006561484, 35.533838540193464, 3.268 ], [ 139.794188006561484, 35.533838540193464, 18.515 ], [ 139.794330020484324, 35.533641603699444, 18.515 ], [ 139.794330020484324, 35.533641603699444, 3.268 ] ] ], [ [ [ 139.794188006561484, 35.533838540193464, 3.268 ], [ 139.794124736368218, 35.53380871956039, 3.268 ], [ 139.794124736368218, 35.53380871956039, 18.515 ], [ 139.794188006561484, 35.533838540193464, 18.515 ], [ 139.794188006561484, 35.533838540193464, 3.268 ] ] ], [ [ [ 139.794124736368218, 35.53380871956039, 3.268 ], [ 139.794124411938839, 35.533809172856024, 3.268 ], [ 139.794124411938839, 35.533809172856024, 18.515 ], [ 139.794124736368218, 35.53380871956039, 18.515 ], [ 139.794124736368218, 35.53380871956039, 3.268 ] ] ], [ [ [ 139.794124411938839, 35.533809172856024, 3.268 ], [ 139.793897282834791, 35.533700751260533, 3.268 ], [ 139.793897282834791, 35.533700751260533, 18.515 ], [ 139.794124411938839, 35.533809172856024, 18.515 ], [ 139.794124411938839, 35.533809172856024, 3.268 ] ] ], [ [ [ 139.793897282834791, 35.533700751260533, 3.268 ], [ 139.793771278009046, 35.533640602345727, 3.268 ], [ 139.793771278009046, 35.533640602345727, 18.515 ], [ 139.793897282834791, 35.533700751260533, 18.515 ], [ 139.793897282834791, 35.533700751260533, 3.268 ] ] ], [ [ [ 139.793771278009046, 35.533640602345727, 3.268 ], [ 139.793769693378266, 35.533642809339526, 3.268 ], [ 139.793769693378266, 35.533642809339526, 18.515 ], [ 139.793771278009046, 35.533640602345727, 18.515 ], [ 139.793771278009046, 35.533640602345727, 3.268 ] ] ], [ [ [ 139.793769693378266, 35.533642809339526, 3.268 ], [ 139.793196123554651, 35.533369058492653, 3.268 ], [ 139.793196123554651, 35.533369058492653, 18.515 ], [ 139.793769693378266, 35.533642809339526, 18.515 ], [ 139.793769693378266, 35.533642809339526, 3.268 ] ] ], [ [ [ 139.793196123554651, 35.533369058492653, 3.268 ], [ 139.793064357093925, 35.533306173892349, 3.268 ], [ 139.793064357093925, 35.533306173892349, 18.515 ], [ 139.793196123554651, 35.533369058492653, 18.515 ], [ 139.793196123554651, 35.533369058492653, 3.268 ] ] ], [ [ [ 139.793064357093925, 35.533306173892349, 3.268 ], [ 139.793063386022425, 35.533307487800471, 3.268 ], [ 139.793063386022425, 35.533307487800471, 18.515 ], [ 139.793064357093925, 35.533306173892349, 18.515 ], [ 139.793064357093925, 35.533306173892349, 3.268 ] ] ], [ [ [ 139.793063386022425, 35.533307487800471, 3.268 ], [ 139.792986505391355, 35.533271267534168, 3.268 ], [ 139.792986505391355, 35.533271267534168, 18.515 ], [ 139.793063386022425, 35.533307487800471, 18.515 ], [ 139.793063386022425, 35.533307487800471, 3.268 ] ] ], [ [ [ 139.792986505391355, 35.533271267534168, 3.268 ], [ 139.793209283437534, 35.532959884100812, 3.268 ], [ 139.793209283437534, 35.532959884100812, 18.515 ], [ 139.792986505391355, 35.533271267534168, 18.515 ], [ 139.792986505391355, 35.533271267534168, 3.268 ] ] ], [ [ [ 139.793209283437534, 35.532959884100812, 18.515 ], [ 139.794408853661508, 35.533532287384219, 18.515 ], [ 139.794394935387174, 35.533551580833489, 18.515 ], [ 139.794374300172933, 35.53358019703137, 18.515 ], [ 139.794330020484324, 35.533641603699444, 18.515 ], [ 139.794188006561484, 35.533838540193464, 18.515 ], [ 139.794124736368218, 35.53380871956039, 18.515 ], [ 139.794124411938839, 35.533809172856024, 18.515 ], [ 139.793897282834791, 35.533700751260533, 18.515 ], [ 139.793771278009046, 35.533640602345727, 18.515 ], [ 139.793769693378266, 35.533642809339526, 18.515 ], [ 139.793196123554651, 35.533369058492653, 18.515 ], [ 139.793064357093925, 35.533306173892349, 18.515 ], [ 139.793063386022425, 35.533307487800471, 18.515 ], [ 139.792986505391355, 35.533271267534168, 18.515 ], [ 139.793209283437534, 35.532959884100812, 18.515 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod1_04.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_943bee21-394f-4efa-b7ab-bfa6fbfd36a4", "建物ID": "13111-bldg-8", "measured_height_uom": "m", "measured_height": 10.3, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.795449961704918, 35.532795933047694, 3.756 ], [ 139.795469293853472, 35.53276763714905, 3.756 ], [ 139.795507571068271, 35.532713354592175, 3.756 ], [ 139.795462739332947, 35.53269223348093, 3.756 ], [ 139.795470919362828, 35.532680635107972, 3.756 ], [ 139.795416989907409, 35.532655211473688, 3.756 ], [ 139.795412251598464, 35.532661934383491, 3.756 ], [ 139.79541137842557, 35.532661523073273, 3.756 ], [ 139.795400666027462, 35.532676485549736, 3.756 ], [ 139.795329477741461, 35.532777218259213, 3.756 ], [ 139.795363003426331, 35.532793016734729, 3.756 ], [ 139.795356235817394, 35.532802611746007, 3.756 ], [ 139.795423052404374, 35.532834090516282, 3.756 ], [ 139.795449961704918, 35.532795933047694, 3.756 ] ] ], [ [ [ 139.795449961704918, 35.532795933047694, 3.756 ], [ 139.795423052404374, 35.532834090516282, 3.756 ], [ 139.795423052404374, 35.532834090516282, 13.44 ], [ 139.795449961704918, 35.532795933047694, 13.44 ], [ 139.795449961704918, 35.532795933047694, 3.756 ] ] ], [ [ [ 139.795423052404374, 35.532834090516282, 3.756 ], [ 139.795356235817394, 35.532802611746007, 3.756 ], [ 139.795356235817394, 35.532802611746007, 13.44 ], [ 139.795423052404374, 35.532834090516282, 13.44 ], [ 139.795423052404374, 35.532834090516282, 3.756 ] ] ], [ [ [ 139.795356235817394, 35.532802611746007, 3.756 ], [ 139.795363003426331, 35.532793016734729, 3.756 ], [ 139.795363003426331, 35.532793016734729, 13.44 ], [ 139.795356235817394, 35.532802611746007, 13.44 ], [ 139.795356235817394, 35.532802611746007, 3.756 ] ] ], [ [ [ 139.795363003426331, 35.532793016734729, 3.756 ], [ 139.795329477741461, 35.532777218259213, 3.756 ], [ 139.795329477741461, 35.532777218259213, 13.44 ], [ 139.795363003426331, 35.532793016734729, 13.44 ], [ 139.795363003426331, 35.532793016734729, 3.756 ] ] ], [ [ [ 139.795329477741461, 35.532777218259213, 3.756 ], [ 139.795400666027462, 35.532676485549736, 3.756 ], [ 139.795400666027462, 35.532676485549736, 13.44 ], [ 139.795329477741461, 35.532777218259213, 13.44 ], [ 139.795329477741461, 35.532777218259213, 3.756 ] ] ], [ [ [ 139.795400666027462, 35.532676485549736, 3.756 ], [ 139.79541137842557, 35.532661523073273, 3.756 ], [ 139.79541137842557, 35.532661523073273, 13.44 ], [ 139.795400666027462, 35.532676485549736, 13.44 ], [ 139.795400666027462, 35.532676485549736, 3.756 ] ] ], [ [ [ 139.79541137842557, 35.532661523073273, 3.756 ], [ 139.795412251598464, 35.532661934383491, 3.756 ], [ 139.795412251598464, 35.532661934383491, 13.44 ], [ 139.79541137842557, 35.532661523073273, 13.44 ], [ 139.79541137842557, 35.532661523073273, 3.756 ] ] ], [ [ [ 139.795412251598464, 35.532661934383491, 3.756 ], [ 139.795416989907409, 35.532655211473688, 3.756 ], [ 139.795416989907409, 35.532655211473688, 13.44 ], [ 139.795412251598464, 35.532661934383491, 13.44 ], [ 139.795412251598464, 35.532661934383491, 3.756 ] ] ], [ [ [ 139.795416989907409, 35.532655211473688, 3.756 ], [ 139.795470919362828, 35.532680635107972, 3.756 ], [ 139.795470919362828, 35.532680635107972, 13.44 ], [ 139.795416989907409, 35.532655211473688, 13.44 ], [ 139.795416989907409, 35.532655211473688, 3.756 ] ] ], [ [ [ 139.795470919362828, 35.532680635107972, 3.756 ], [ 139.795462739332947, 35.53269223348093, 3.756 ], [ 139.795462739332947, 35.53269223348093, 13.44 ], [ 139.795470919362828, 35.532680635107972, 13.44 ], [ 139.795470919362828, 35.532680635107972, 3.756 ] ] ], [ [ [ 139.795462739332947, 35.53269223348093, 3.756 ], [ 139.795507571068271, 35.532713354592175, 3.756 ], [ 139.795507571068271, 35.532713354592175, 13.44 ], [ 139.795462739332947, 35.53269223348093, 13.44 ], [ 139.795462739332947, 35.53269223348093, 3.756 ] ] ], [ [ [ 139.795507571068271, 35.532713354592175, 3.756 ], [ 139.795469293853472, 35.53276763714905, 3.756 ], [ 139.795469293853472, 35.53276763714905, 13.44 ], [ 139.795507571068271, 35.532713354592175, 13.44 ], [ 139.795507571068271, 35.532713354592175, 3.756 ] ] ], [ [ [ 139.795469293853472, 35.53276763714905, 3.756 ], [ 139.795449961704918, 35.532795933047694, 3.756 ], [ 139.795449961704918, 35.532795933047694, 13.44 ], [ 139.795469293853472, 35.53276763714905, 13.44 ], [ 139.795469293853472, 35.53276763714905, 3.756 ] ] ], [ [ [ 139.795449961704918, 35.532795933047694, 13.44 ], [ 139.795423052404374, 35.532834090516282, 13.44 ], [ 139.795356235817394, 35.532802611746007, 13.44 ], [ 139.795363003426331, 35.532793016734729, 13.44 ], [ 139.795329477741461, 35.532777218259213, 13.44 ], [ 139.795400666027462, 35.532676485549736, 13.44 ], [ 139.79541137842557, 35.532661523073273, 13.44 ], [ 139.795412251598464, 35.532661934383491, 13.44 ], [ 139.795416989907409, 35.532655211473688, 13.44 ], [ 139.795470919362828, 35.532680635107972, 13.44 ], [ 139.795462739332947, 35.53269223348093, 13.44 ], [ 139.795507571068271, 35.532713354592175, 13.44 ], [ 139.795469293853472, 35.53276763714905, 13.44 ], [ 139.795449961704918, 35.532795933047694, 13.44 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod1_05.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_bdc161ef-9ae3-4a6c-b554-8a2ce507e6c8", "建物ID": "13111-bldg-147335", "measured_height_uom": "m", "measured_height": 48.7, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.794777316304504, 35.532775084279393, 3.434 ], [ 139.794776850494173, 35.532773731138057, 3.434 ], [ 139.794778334209411, 35.532770309920686, 3.434 ], [ 139.794607340785006, 35.532719275897669, 3.434 ], [ 139.794605836113647, 35.532722692599279, 3.434 ], [ 139.794592738706683, 35.532752947288863, 3.434 ], [ 139.794549634516187, 35.532852348181166, 3.434 ], [ 139.79454474821253, 35.532857078928295, 3.434 ], [ 139.794544752246736, 35.532860152683149, 3.434 ], [ 139.794546446270402, 35.532859699826759, 3.434 ], [ 139.794546330353654, 35.532859968404907, 3.434 ], [ 139.794717336172653, 35.532910992601941, 3.434 ], [ 139.794727837025107, 35.53288677640829, 3.434 ], [ 139.794742239863467, 35.532891442126015, 3.434 ], [ 139.794762262693581, 35.532851425735991, 3.434 ], [ 139.794745516907767, 35.53284599849453, 3.434 ], [ 139.794775364571194, 35.532777156861684, 3.434 ], [ 139.794777316304504, 35.532775084279393, 3.434 ] ] ], [ [ [ 139.794777316304504, 35.532775084279393, 3.434 ], [ 139.794775364571194, 35.532777156861684, 3.434 ], [ 139.794775364571194, 35.532777156861684, 17.164 ], [ 139.794777316304504, 35.532775084279393, 17.164 ], [ 139.794777316304504, 35.532775084279393, 3.434 ] ] ], [ [ [ 139.794775364571194, 35.532777156861684, 3.434 ], [ 139.794745516907767, 35.53284599849453, 3.434 ], [ 139.794745516907767, 35.53284599849453, 17.164 ], [ 139.794775364571194, 35.532777156861684, 17.164 ], [ 139.794775364571194, 35.532777156861684, 3.434 ] ] ], [ [ [ 139.794745516907767, 35.53284599849453, 3.434 ], [ 139.794762262693581, 35.532851425735991, 3.434 ], [ 139.794762262693581, 35.532851425735991, 17.164 ], [ 139.794745516907767, 35.53284599849453, 17.164 ], [ 139.794745516907767, 35.53284599849453, 3.434 ] ] ], [ [ [ 139.794762262693581, 35.532851425735991, 3.434 ], [ 139.794742239863467, 35.532891442126015, 3.434 ], [ 139.794742239863467, 35.532891442126015, 17.164 ], [ 139.794762262693581, 35.532851425735991, 17.164 ], [ 139.794762262693581, 35.532851425735991, 3.434 ] ] ], [ [ [ 139.794742239863467, 35.532891442126015, 3.434 ], [ 139.794727837025107, 35.53288677640829, 3.434 ], [ 139.794727837025107, 35.53288677640829, 17.164 ], [ 139.794742239863467, 35.532891442126015, 17.164 ], [ 139.794742239863467, 35.532891442126015, 3.434 ] ] ], [ [ [ 139.794727837025107, 35.53288677640829, 3.434 ], [ 139.794717336172653, 35.532910992601941, 3.434 ], [ 139.794717336172653, 35.532910992601941, 17.164 ], [ 139.794727837025107, 35.53288677640829, 17.164 ], [ 139.794727837025107, 35.53288677640829, 3.434 ] ] ], [ [ [ 139.794717336172653, 35.532910992601941, 3.434 ], [ 139.794546330353654, 35.532859968404907, 3.434 ], [ 139.794546330353654, 35.532859968404907, 17.164 ], [ 139.794717336172653, 35.532910992601941, 17.164 ], [ 139.794717336172653, 35.532910992601941, 3.434 ] ] ], [ [ [ 139.794546330353654, 35.532859968404907, 3.434 ], [ 139.794546446270402, 35.532859699826759, 3.434 ], [ 139.794546446270402, 35.532859699826759, 17.164 ], [ 139.794546330353654, 35.532859968404907, 17.164 ], [ 139.794546330353654, 35.532859968404907, 3.434 ] ] ], [ [ [ 139.794546446270402, 35.532859699826759, 3.434 ], [ 139.794544752246736, 35.532860152683149, 3.434 ], [ 139.794544752246736, 35.532860152683149, 17.164 ], [ 139.794546446270402, 35.532859699826759, 17.164 ], [ 139.794546446270402, 35.532859699826759, 3.434 ] ] ], [ [ [ 139.794544752246736, 35.532860152683149, 3.434 ], [ 139.79454474821253, 35.532857078928295, 3.434 ], [ 139.79454474821253, 35.532857078928295, 17.164 ], [ 139.794544752246736, 35.532860152683149, 17.164 ], [ 139.794544752246736, 35.532860152683149, 3.434 ] ] ], [ [ [ 139.79454474821253, 35.532857078928295, 3.434 ], [ 139.794549634516187, 35.532852348181166, 3.434 ], [ 139.794549634516187, 35.532852348181166, 17.164 ], [ 139.79454474821253, 35.532857078928295, 17.164 ], [ 139.79454474821253, 35.532857078928295, 3.434 ] ] ], [ [ [ 139.794549634516187, 35.532852348181166, 3.434 ], [ 139.794592738706683, 35.532752947288863, 3.434 ], [ 139.794592738706683, 35.532752947288863, 17.164 ], [ 139.794549634516187, 35.532852348181166, 17.164 ], [ 139.794549634516187, 35.532852348181166, 3.434 ] ] ], [ [ [ 139.794592738706683, 35.532752947288863, 3.434 ], [ 139.794605836113647, 35.532722692599279, 3.434 ], [ 139.794605836113647, 35.532722692599279, 17.164 ], [ 139.794592738706683, 35.532752947288863, 17.164 ], [ 139.794592738706683, 35.532752947288863, 3.434 ] ] ], [ [ [ 139.794605836113647, 35.532722692599279, 3.434 ], [ 139.794607340785006, 35.532719275897669, 3.434 ], [ 139.794607340785006, 35.532719275897669, 17.164 ], [ 139.794605836113647, 35.532722692599279, 17.164 ], [ 139.794605836113647, 35.532722692599279, 3.434 ] ] ], [ [ [ 139.794607340785006, 35.532719275897669, 3.434 ], [ 139.794778334209411, 35.532770309920686, 3.434 ], [ 139.794778334209411, 35.532770309920686, 17.164 ], [ 139.794607340785006, 35.532719275897669, 17.164 ], [ 139.794607340785006, 35.532719275897669, 3.434 ] ] ], [ [ [ 139.794778334209411, 35.532770309920686, 3.434 ], [ 139.794776850494173, 35.532773731138057, 3.434 ], [ 139.794776850494173, 35.532773731138057, 17.164 ], [ 139.794778334209411, 35.532770309920686, 17.164 ], [ 139.794778334209411, 35.532770309920686, 3.434 ] ] ], [ [ [ 139.794776850494173, 35.532773731138057, 3.434 ], [ 139.794777316304504, 35.532775084279393, 3.434 ], [ 139.794777316304504, 35.532775084279393, 17.164 ], [ 139.794776850494173, 35.532773731138057, 17.164 ], [ 139.794776850494173, 35.532773731138057, 3.434 ] ] ], [ [ [ 139.794777316304504, 35.532775084279393, 17.164 ], [ 139.794775364571194, 35.532777156861684, 17.164 ], [ 139.794745516907767, 35.53284599849453, 17.164 ], [ 139.794762262693581, 35.532851425735991, 17.164 ], [ 139.794742239863467, 35.532891442126015, 17.164 ], [ 139.794727837025107, 35.53288677640829, 17.164 ], [ 139.794717336172653, 35.532910992601941, 17.164 ], [ 139.794546330353654, 35.532859968404907, 17.164 ], [ 139.794546446270402, 35.532859699826759, 17.164 ], [ 139.794544752246736, 35.532860152683149, 17.164 ], [ 139.79454474821253, 35.532857078928295, 17.164 ], [ 139.794549634516187, 35.532852348181166, 17.164 ], [ 139.794592738706683, 35.532752947288863, 17.164 ], [ 139.794605836113647, 35.532722692599279, 17.164 ], [ 139.794607340785006, 35.532719275897669, 17.164 ], [ 139.794778334209411, 35.532770309920686, 17.164 ], [ 139.794776850494173, 35.532773731138057, 17.164 ], [ 139.794777316304504, 35.532775084279393, 17.164 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod1_07.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_9b519583-dd03-44fa-ae02-5c81743fdf88", "建物ID": "13111-bldg-147334", "measured_height_uom": "m", "measured_height": 12.6, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.7946993787792, 35.533107332093493, 3.27 ], [ 139.794766297477167, 35.533013000096631, 3.27 ], [ 139.794596431435423, 35.532932585483451, 3.27 ], [ 139.794479108010648, 35.53287707956359, 3.27 ], [ 139.794343399594652, 35.533068371064083, 3.27 ], [ 139.794512649309041, 35.533148636202029, 3.27 ], [ 139.794519172045142, 35.533139443181589, 3.27 ], [ 139.794530164974503, 35.533144656775924, 3.27 ], [ 139.794542033017422, 35.533127928017549, 3.27 ], [ 139.794531042295915, 35.533122712622202, 3.27 ], [ 139.794561952153799, 35.53307914737551, 3.27 ], [ 139.794570715843975, 35.533083302914434, 3.27 ], [ 139.794590343602579, 35.533055635524754, 3.27 ], [ 139.7946993787792, 35.533107332093493, 3.27 ] ] ], [ [ [ 139.7946993787792, 35.533107332093493, 3.27 ], [ 139.794590343602579, 35.533055635524754, 3.27 ], [ 139.794590343602579, 35.533055635524754, 15.742 ], [ 139.7946993787792, 35.533107332093493, 15.742 ], [ 139.7946993787792, 35.533107332093493, 3.27 ] ] ], [ [ [ 139.794590343602579, 35.533055635524754, 3.27 ], [ 139.794570715843975, 35.533083302914434, 3.27 ], [ 139.794570715843975, 35.533083302914434, 15.742 ], [ 139.794590343602579, 35.533055635524754, 15.742 ], [ 139.794590343602579, 35.533055635524754, 3.27 ] ] ], [ [ [ 139.794570715843975, 35.533083302914434, 3.27 ], [ 139.794561952153799, 35.53307914737551, 3.27 ], [ 139.794561952153799, 35.53307914737551, 15.742 ], [ 139.794570715843975, 35.533083302914434, 15.742 ], [ 139.794570715843975, 35.533083302914434, 3.27 ] ] ], [ [ [ 139.794561952153799, 35.53307914737551, 3.27 ], [ 139.794531042295915, 35.533122712622202, 3.27 ], [ 139.794531042295915, 35.533122712622202, 15.742 ], [ 139.794561952153799, 35.53307914737551, 15.742 ], [ 139.794561952153799, 35.53307914737551, 3.27 ] ] ], [ [ [ 139.794531042295915, 35.533122712622202, 3.27 ], [ 139.794542033017422, 35.533127928017549, 3.27 ], [ 139.794542033017422, 35.533127928017549, 15.742 ], [ 139.794531042295915, 35.533122712622202, 15.742 ], [ 139.794531042295915, 35.533122712622202, 3.27 ] ] ], [ [ [ 139.794542033017422, 35.533127928017549, 3.27 ], [ 139.794530164974503, 35.533144656775924, 3.27 ], [ 139.794530164974503, 35.533144656775924, 15.742 ], [ 139.794542033017422, 35.533127928017549, 15.742 ], [ 139.794542033017422, 35.533127928017549, 3.27 ] ] ], [ [ [ 139.794530164974503, 35.533144656775924, 3.27 ], [ 139.794519172045142, 35.533139443181589, 3.27 ], [ 139.794519172045142, 35.533139443181589, 15.742 ], [ 139.794530164974503, 35.533144656775924, 15.742 ], [ 139.794530164974503, 35.533144656775924, 3.27 ] ] ], [ [ [ 139.794519172045142, 35.533139443181589, 3.27 ], [ 139.794512649309041, 35.533148636202029, 3.27 ], [ 139.794512649309041, 35.533148636202029, 15.742 ], [ 139.794519172045142, 35.533139443181589, 15.742 ], [ 139.794519172045142, 35.533139443181589, 3.27 ] ] ], [ [ [ 139.794512649309041, 35.533148636202029, 3.27 ], [ 139.794343399594652, 35.533068371064083, 3.27 ], [ 139.794343399594652, 35.533068371064083, 15.742 ], [ 139.794512649309041, 35.533148636202029, 15.742 ], [ 139.794512649309041, 35.533148636202029, 3.27 ] ] ], [ [ [ 139.794343399594652, 35.533068371064083, 3.27 ], [ 139.794479108010648, 35.53287707956359, 3.27 ], [ 139.794479108010648, 35.53287707956359, 15.742 ], [ 139.794343399594652, 35.533068371064083, 15.742 ], [ 139.794343399594652, 35.533068371064083, 3.27 ] ] ], [ [ [ 139.794479108010648, 35.53287707956359, 3.27 ], [ 139.794596431435423, 35.532932585483451, 3.27 ], [ 139.794596431435423, 35.532932585483451, 15.742 ], [ 139.794479108010648, 35.53287707956359, 15.742 ], [ 139.794479108010648, 35.53287707956359, 3.27 ] ] ], [ [ [ 139.794596431435423, 35.532932585483451, 3.27 ], [ 139.794766297477167, 35.533013000096631, 3.27 ], [ 139.794766297477167, 35.533013000096631, 15.742 ], [ 139.794596431435423, 35.532932585483451, 15.742 ], [ 139.794596431435423, 35.532932585483451, 3.27 ] ] ], [ [ [ 139.794766297477167, 35.533013000096631, 3.27 ], [ 139.7946993787792, 35.533107332093493, 3.27 ], [ 139.7946993787792, 35.533107332093493, 15.742 ], [ 139.794766297477167, 35.533013000096631, 15.742 ], [ 139.794766297477167, 35.533013000096631, 3.27 ] ] ], [ [ [ 139.7946993787792, 35.533107332093493, 15.742 ], [ 139.794590343602579, 35.533055635524754, 15.742 ], [ 139.794570715843975, 35.533083302914434, 15.742 ], [ 139.794561952153799, 35.53307914737551, 15.742 ], [ 139.794531042295915, 35.533122712622202, 15.742 ], [ 139.794542033017422, 35.533127928017549, 15.742 ], [ 139.794530164974503, 35.533144656775924, 15.742 ], [ 139.794519172045142, 35.533139443181589, 15.742 ], [ 139.794512649309041, 35.533148636202029, 15.742 ], [ 139.794343399594652, 35.533068371064083, 15.742 ], [ 139.794479108010648, 35.53287707956359, 15.742 ], [ 139.794596431435423, 35.532932585483451, 15.742 ], [ 139.794766297477167, 35.533013000096631, 15.742 ], [ 139.7946993787792, 35.533107332093493, 15.742 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod1_08.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_ede55277-ede8-44fe-9ed1-827c5fd4c3fe", "建物ID": "13111-bldg-12", "大字・町コード": "42", "町・丁目コード": "3", "13_区市町村コード_大字・町コード_町・丁目コード": "13111042003", "measured_height_uom": "m", "measured_height": 7.6, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "building_roof_edge_area_uom": "m2", "building_roof_edge_area": 258.47797, "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "survey_year": "2016", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.796388354702401, 35.533332321005801, 3.481 ], [ 139.79635763348108, 35.533317596335188, 3.481 ], [ 139.796360496934398, 35.533313604037872, 3.481 ], [ 139.79634286572707, 35.53330515166904, 3.481 ], [ 139.796373702479798, 35.533265119400916, 3.481 ], [ 139.796249266563649, 35.533205464810784, 3.481 ], [ 139.796217471996755, 35.533246786647446, 3.481 ], [ 139.796144171773307, 35.533349030816076, 3.481 ], [ 139.796286243471286, 35.53341712707752, 3.481 ], [ 139.796288180030416, 35.533414428898944, 3.481 ], [ 139.796318908993925, 35.533429156293572, 3.481 ], [ 139.79632388777199, 35.533422213482659, 3.481 ], [ 139.796387764356837, 35.533333143797613, 3.481 ], [ 139.796388354702401, 35.533332321005801, 3.481 ] ] ], [ [ [ 139.796388354702401, 35.533332321005801, 3.481 ], [ 139.796387764356837, 35.533333143797613, 3.481 ], [ 139.796387764356837, 35.533333143797613, 10.811 ], [ 139.796388354702401, 35.533332321005801, 10.811 ], [ 139.796388354702401, 35.533332321005801, 3.481 ] ] ], [ [ [ 139.796387764356837, 35.533333143797613, 3.481 ], [ 139.79632388777199, 35.533422213482659, 3.481 ], [ 139.79632388777199, 35.533422213482659, 10.811 ], [ 139.796387764356837, 35.533333143797613, 10.811 ], [ 139.796387764356837, 35.533333143797613, 3.481 ] ] ], [ [ [ 139.79632388777199, 35.533422213482659, 3.481 ], [ 139.796318908993925, 35.533429156293572, 3.481 ], [ 139.796318908993925, 35.533429156293572, 10.811 ], [ 139.79632388777199, 35.533422213482659, 10.811 ], [ 139.79632388777199, 35.533422213482659, 3.481 ] ] ], [ [ [ 139.796318908993925, 35.533429156293572, 3.481 ], [ 139.796288180030416, 35.533414428898944, 3.481 ], [ 139.796288180030416, 35.533414428898944, 10.811 ], [ 139.796318908993925, 35.533429156293572, 10.811 ], [ 139.796318908993925, 35.533429156293572, 3.481 ] ] ], [ [ [ 139.796288180030416, 35.533414428898944, 3.481 ], [ 139.796286243471286, 35.53341712707752, 3.481 ], [ 139.796286243471286, 35.53341712707752, 10.811 ], [ 139.796288180030416, 35.533414428898944, 10.811 ], [ 139.796288180030416, 35.533414428898944, 3.481 ] ] ], [ [ [ 139.796286243471286, 35.53341712707752, 3.481 ], [ 139.796144171773307, 35.533349030816076, 3.481 ], [ 139.796144171773307, 35.533349030816076, 10.811 ], [ 139.796286243471286, 35.53341712707752, 10.811 ], [ 139.796286243471286, 35.53341712707752, 3.481 ] ] ], [ [ [ 139.796144171773307, 35.533349030816076, 3.481 ], [ 139.796217471996755, 35.533246786647446, 3.481 ], [ 139.796217471996755, 35.533246786647446, 10.811 ], [ 139.796144171773307, 35.533349030816076, 10.811 ], [ 139.796144171773307, 35.533349030816076, 3.481 ] ] ], [ [ [ 139.796217471996755, 35.533246786647446, 3.481 ], [ 139.796249266563649, 35.533205464810784, 3.481 ], [ 139.796249266563649, 35.533205464810784, 10.811 ], [ 139.796217471996755, 35.533246786647446, 10.811 ], [ 139.796217471996755, 35.533246786647446, 3.481 ] ] ], [ [ [ 139.796249266563649, 35.533205464810784, 3.481 ], [ 139.796373702479798, 35.533265119400916, 3.481 ], [ 139.796373702479798, 35.533265119400916, 10.811 ], [ 139.796249266563649, 35.533205464810784, 10.811 ], [ 139.796249266563649, 35.533205464810784, 3.481 ] ] ], [ [ [ 139.796373702479798, 35.533265119400916, 3.481 ], [ 139.79634286572707, 35.53330515166904, 3.481 ], [ 139.79634286572707, 35.53330515166904, 10.811 ], [ 139.796373702479798, 35.533265119400916, 10.811 ], [ 139.796373702479798, 35.533265119400916, 3.481 ] ] ], [ [ [ 139.79634286572707, 35.53330515166904, 3.481 ], [ 139.796360496934398, 35.533313604037872, 3.481 ], [ 139.796360496934398, 35.533313604037872, 10.811 ], [ 139.79634286572707, 35.53330515166904, 10.811 ], [ 139.79634286572707, 35.53330515166904, 3.481 ] ] ], [ [ [ 139.796360496934398, 35.533313604037872, 3.481 ], [ 139.79635763348108, 35.533317596335188, 3.481 ], [ 139.79635763348108, 35.533317596335188, 10.811 ], [ 139.796360496934398, 35.533313604037872, 10.811 ], [ 139.796360496934398, 35.533313604037872, 3.481 ] ] ], [ [ [ 139.79635763348108, 35.533317596335188, 3.481 ], [ 139.796388354702401, 35.533332321005801, 3.481 ], [ 139.796388354702401, 35.533332321005801, 10.811 ], [ 139.79635763348108, 35.533317596335188, 10.811 ], [ 139.79635763348108, 35.533317596335188, 3.481 ] ] ], [ [ [ 139.796388354702401, 35.533332321005801, 10.811 ], [ 139.796387764356837, 35.533333143797613, 10.811 ], [ 139.79632388777199, 35.533422213482659, 10.811 ], [ 139.796318908993925, 35.533429156293572, 10.811 ], [ 139.796288180030416, 35.533414428898944, 10.811 ], [ 139.796286243471286, 35.53341712707752, 10.811 ], [ 139.796144171773307, 35.533349030816076, 10.811 ], [ 139.796217471996755, 35.533246786647446, 10.811 ], [ 139.796249266563649, 35.533205464810784, 10.811 ], [ 139.796373702479798, 35.533265119400916, 10.811 ], [ 139.79634286572707, 35.53330515166904, 10.811 ], [ 139.796360496934398, 35.533313604037872, 10.811 ], [ 139.79635763348108, 35.533317596335188, 10.811 ], [ 139.796388354702401, 35.533332321005801, 10.811 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod1_09.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_7263c902-41e5-44bd-bce1-4d308a26d9da", "建物ID": "13111-bldg-7", "measured_height_uom": "m", "measured_height": 7.0, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.795278837854795, 35.532665125662916, 3.918 ], [ 139.795235864105052, 35.53272608959945, 3.918 ], [ 139.795321798888864, 35.532766578488548, 3.918 ], [ 139.795364772595235, 35.532705614521753, 3.918 ], [ 139.795278837854795, 35.532665125662916, 3.918 ] ] ], [ [ [ 139.795278837854795, 35.532665125662916, 3.918 ], [ 139.795364772595235, 35.532705614521753, 3.918 ], [ 139.795364772595235, 35.532705614521753, 10.44 ], [ 139.795278837854795, 35.532665125662916, 10.44 ], [ 139.795278837854795, 35.532665125662916, 3.918 ] ] ], [ [ [ 139.795364772595235, 35.532705614521753, 3.918 ], [ 139.795321798888864, 35.532766578488548, 3.918 ], [ 139.795321798888864, 35.532766578488548, 10.44 ], [ 139.795364772595235, 35.532705614521753, 10.44 ], [ 139.795364772595235, 35.532705614521753, 3.918 ] ] ], [ [ [ 139.795321798888864, 35.532766578488548, 3.918 ], [ 139.795235864105052, 35.53272608959945, 3.918 ], [ 139.795235864105052, 35.53272608959945, 10.44 ], [ 139.795321798888864, 35.532766578488548, 10.44 ], [ 139.795321798888864, 35.532766578488548, 3.918 ] ] ], [ [ [ 139.795235864105052, 35.53272608959945, 3.918 ], [ 139.795278837854795, 35.532665125662916, 3.918 ], [ 139.795278837854795, 35.532665125662916, 10.44 ], [ 139.795235864105052, 35.53272608959945, 10.44 ], [ 139.795235864105052, 35.53272608959945, 3.918 ] ] ], [ [ [ 139.795278837854795, 35.532665125662916, 10.44 ], [ 139.795364772595235, 35.532705614521753, 10.44 ], [ 139.795321798888864, 35.532766578488548, 10.44 ], [ 139.795235864105052, 35.53272608959945, 10.44 ], [ 139.795278837854795, 35.532665125662916, 10.44 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod2_00.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_1290f570-9df8-4956-bef3-6d0976c835be", "建物ID": "13111-bldg-10", "大字・町コード": "42", "町・丁目コード": "3", "13_区市町村コード_大字・町コード_町・丁目コード": "13111042003", "measured_height_uom": "m", "measured_height": 4.3, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "building_roof_edge_area_uom": "m2", "building_roof_edge_area": 54.15435, "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "survey_year": "2016", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.796351967431804, 35.533096948566886, 3.66410811 ], [ 139.79634196185296, 35.533092151101421, 3.66408749 ], [ 139.796320678790153, 35.533121837261689, 3.6635608 ], [ 139.796330684084381, 35.533126634533389, 3.66358141 ], [ 139.796319965586179, 35.533141584661621, 3.66331703 ], [ 139.796390136464908, 35.533175221159944, 3.66346657 ], [ 139.796400855826363, 35.533160279972336, 3.66373085 ], [ 139.796408790681113, 35.533164084514709, 3.66374829 ], [ 139.796430085088843, 35.53313440429897, 3.66427499 ], [ 139.796422149711361, 35.533130599460456, 3.66425755 ], [ 139.796432657368626, 35.533115953337905, 3.6645183 ], [ 139.796362464501414, 35.533082307267598, 3.66436872 ], [ 139.796351967431804, 35.533096948566886, 3.66410811 ] ] ], [ [ [ 139.796400852862149, 35.533160282964523, 6.73173082 ], [ 139.796422146736887, 35.533130602466954, 6.73225752 ], [ 139.796430082110618, 35.533134407303571, 6.73227496 ], [ 139.796408787713148, 35.533164087505078, 6.73174826 ], [ 139.796400852862149, 35.533160282964523, 6.73173082 ] ] ], [ [ [ 139.796351964491066, 35.53309695158962, 6.73210808 ], [ 139.796330681153904, 35.533126637541798, 6.73158138 ], [ 139.796320675864507, 35.533121840272443, 6.73156077 ], [ 139.796341958917054, 35.5330921541265, 6.73208746 ], [ 139.796351964491066, 35.53309695158962, 6.73210808 ] ] ], [ [ [ 139.796432653801588, 35.533115956945728, 7.33751827 ], [ 139.796341371455583, 35.53311173171862, 7.9468456 ], [ 139.796362460974706, 35.533082310894905, 7.33736868 ], [ 139.796432653801588, 35.533115956945728, 7.33751827 ] ] ], [ [ [ 139.796411637365992, 35.53314523010603, 7.94699755 ], [ 139.796341371455583, 35.53311173171862, 7.9468456 ], [ 139.796432653801588, 35.533115956945728, 7.33751827 ], [ 139.796411637365992, 35.53314523010603, 7.94699755 ] ] ], [ [ [ 139.796341371455583, 35.53311173171862, 7.9468456 ], [ 139.796411637365992, 35.53314523010603, 7.94699755 ], [ 139.79631996208397, 35.533141588254679, 7.336317 ], [ 139.796341371455583, 35.53311173171862, 7.9468456 ] ] ], [ [ [ 139.79631996208397, 35.533141588254679, 7.336317 ], [ 139.796411637365992, 35.53314523010603, 7.94699755 ], [ 139.796390132922255, 35.533175224733526, 7.33646654 ], [ 139.79631996208397, 35.533141588254679, 7.336317 ] ] ], [ [ [ 139.796400855826363, 35.533160279972336, 3.66373085 ], [ 139.796400852862149, 35.533160282964523, 6.73173082 ], [ 139.796408787713148, 35.533164087505078, 6.73174826 ], [ 139.796408790681113, 35.533164084514709, 3.66374829 ], [ 139.796400855826363, 35.533160279972336, 3.66373085 ] ] ], [ [ [ 139.796408787713148, 35.533164087505078, 6.73174826 ], [ 139.796430082110618, 35.533134407303571, 6.73227496 ], [ 139.796430085088843, 35.53313440429897, 3.66427499 ], [ 139.796408790681113, 35.533164084514709, 3.66374829 ], [ 139.796408787713148, 35.533164087505078, 6.73174826 ] ] ], [ [ [ 139.796422146736887, 35.533130602466954, 6.73225752 ], [ 139.796422149711361, 35.533130599460456, 3.66425755 ], [ 139.796430085088843, 35.53313440429897, 3.66427499 ], [ 139.796430082110618, 35.533134407303571, 6.73227496 ], [ 139.796422146736887, 35.533130602466954, 6.73225752 ] ] ], [ [ [ 139.796341958917054, 35.5330921541265, 6.73208746 ], [ 139.796320675864507, 35.533121840272443, 6.73156077 ], [ 139.796320678790153, 35.533121837261689, 3.6635608 ], [ 139.79634196185296, 35.533092151101421, 3.66408749 ], [ 139.796341958917054, 35.5330921541265, 6.73208746 ] ] ], [ [ [ 139.796330681153904, 35.533126637541798, 6.73158138 ], [ 139.796330684084381, 35.533126634533389, 3.66358141 ], [ 139.796320678790153, 35.533121837261689, 3.6635608 ], [ 139.796320675864507, 35.533121840272443, 6.73156077 ], [ 139.796330681153904, 35.533126637541798, 6.73158138 ] ] ], [ [ [ 139.796351967431804, 35.533096948566886, 3.66410811 ], [ 139.796351964491066, 35.53309695158962, 6.73210808 ], [ 139.796341958917054, 35.5330921541265, 6.73208746 ], [ 139.79634196185296, 35.533092151101421, 3.66408749 ], [ 139.796351967431804, 35.533096948566886, 3.66410811 ] ] ], [ [ [ 139.796390132922255, 35.533175224733526, 7.33646654 ], [ 139.796432653801588, 35.533115956945728, 7.33751827 ], [ 139.796432657368626, 35.533115953337905, 3.6645183 ], [ 139.796422149711361, 35.533130599460456, 3.66425755 ], [ 139.796422146736887, 35.533130602466954, 6.73225752 ], [ 139.796400852862149, 35.533160282964523, 6.73173082 ], [ 139.796400855826363, 35.533160279972336, 3.66373085 ], [ 139.796390136464908, 35.533175221159944, 3.66346657 ], [ 139.796390132922255, 35.533175224733526, 7.33646654 ] ] ], [ [ [ 139.796330681153904, 35.533126637541798, 6.73158138 ], [ 139.796351964491066, 35.53309695158962, 6.73210808 ], [ 139.796351967431804, 35.533096948566886, 3.66410811 ], [ 139.796362464501414, 35.533082307267598, 3.66436872 ], [ 139.796362460974706, 35.533082310894905, 7.33736868 ], [ 139.79631996208397, 35.533141588254679, 7.336317 ], [ 139.796319965586179, 35.533141584661621, 3.66331703 ], [ 139.796330684084381, 35.533126634533389, 3.66358141 ], [ 139.796330681153904, 35.533126637541798, 6.73158138 ] ] ], [ [ [ 139.796411637365992, 35.53314523010603, 7.94699755 ], [ 139.796432653801588, 35.533115956945728, 7.33751827 ], [ 139.796390132922255, 35.533175224733526, 7.33646654 ], [ 139.796411637365992, 35.53314523010603, 7.94699755 ] ] ], [ [ [ 139.796341371455583, 35.53311173171862, 7.9468456 ], [ 139.79631996208397, 35.533141588254679, 7.336317 ], [ 139.796362460974706, 35.533082310894905, 7.33736868 ], [ 139.796341371455583, 35.53311173171862, 7.9468456 ] ] ], [ [ [ 139.79631996208397, 35.533141588254679, 7.336317 ], [ 139.796390132922255, 35.533175224733526, 7.33646654 ], [ 139.796390136464908, 35.533175221159944, 3.66346657 ], [ 139.796319965586179, 35.533141584661621, 3.66331703 ], [ 139.79631996208397, 35.533141588254679, 7.336317 ] ] ], [ [ [ 139.796432653801588, 35.533115956945728, 7.33751827 ], [ 139.796362460974706, 35.533082310894905, 7.33736868 ], [ 139.796362464501414, 35.533082307267598, 3.66436872 ], [ 139.796432657368626, 35.533115953337905, 3.6645183 ], [ 139.796432653801588, 35.533115956945728, 7.33751827 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_4326_lod2_09.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 4 | "features": [ 5 | { "type": "Feature", "properties": { "id": "BLD_7263c902-41e5-44bd-bce1-4d308a26d9da", "建物ID": "13111-bldg-7", "measured_height_uom": "m", "measured_height": 7.0, "address_type": "Town", "address": "東京都大田区羽田空港三丁目", "districts_and_zones_type": "11", "prefecture": "13", "city": "13111", "filename": "53392633_bldg_6697_2_op.gml", "mesh_code": "53392633", "object": "bldg" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 139.795278840232612, 35.532665122161291, 3.9778072 ], [ 139.795235869142516, 35.532726082522949, 3.97674228 ], [ 139.795321801958124, 35.532766574458208, 3.9767824 ], [ 139.795364772379031, 35.53270561461823, 3.97784728 ], [ 139.795278840232612, 35.532665122161291, 3.9778072 ] ] ], [ [ [ 139.795321796431978, 35.532766581648147, 10.90878233 ], [ 139.795235863709536, 35.532726089756991, 10.90874222 ], [ 139.795278834753105, 35.532665129461847, 10.90980713 ], [ 139.795364766806273, 35.532705621874676, 10.90984722 ], [ 139.795321796431978, 35.532766581648147, 10.90878233 ] ] ], [ [ [ 139.795364766806273, 35.532705621874676, 10.90984722 ], [ 139.795278834753105, 35.532665129461847, 10.90980713 ], [ 139.795278840232612, 35.532665122161291, 3.9778072 ], [ 139.795364772379031, 35.53270561461823, 3.97784728 ], [ 139.795364766806273, 35.532705621874676, 10.90984722 ] ] ], [ [ [ 139.795278834753105, 35.532665129461847, 10.90980713 ], [ 139.795235863709536, 35.532726089756991, 10.90874222 ], [ 139.795235869142516, 35.532726082522949, 3.97674228 ], [ 139.795278840232612, 35.532665122161291, 3.9778072 ], [ 139.795278834753105, 35.532665129461847, 10.90980713 ] ] ], [ [ [ 139.795235863709536, 35.532726089756991, 10.90874222 ], [ 139.795321796431978, 35.532766581648147, 10.90878233 ], [ 139.795321801958124, 35.532766574458208, 3.9767824 ], [ 139.795235869142516, 35.532726082522949, 3.97674228 ], [ 139.795235863709536, 35.532726089756991, 10.90874222 ] ] ], [ [ [ 139.795321796431978, 35.532766581648147, 10.90878233 ], [ 139.795364766806273, 35.532705621874676, 10.90984722 ], [ 139.795364772379031, 35.53270561461823, 3.97784728 ], [ 139.795321801958124, 35.532766574458208, 3.9767824 ], [ 139.795321796431978, 35.532766581648147, 10.90878233 ] ] ] ] } } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod0.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 184 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 129 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51800.9 -3352.63 7.313 0 0 1 15 | -51799.3 -3353.58 7.313 0 0 1 16 | -51799.8 -3354.49 7.313 0 0 1 17 | -51796.5 -3356.42 7.313 0 0 1 18 | -51796 -3355.51 7.313 0 0 1 19 | -51794.3 -3356.49 7.313 0 0 1 20 | -51790.6 -3350.12 7.313 0 0 1 21 | -51792.2 -3349.15 7.313 0 0 0 22 | -51791.8 -3348.43 7.313 0 0 1 23 | -51795.1 -3346.5 7.313 0 0 0 24 | -51795.5 -3347.22 7.313 0 0 1 25 | -51797.2 -3346.27 7.313 0 0 1 26 | -51800.9 -3352.63 7.313 0 0 0 27 | -51781.5 -3407.41 10.383 0 0 1 28 | -51781.5 -3406.54 10.383 0 0 1 29 | -51783.7 -3405.45 10.383 0 0 1 30 | -51786.1 -3405.21 10.383 0 0 1 31 | -51788.8 -3405.54 10.383 0 0 1 32 | -51791.3 -3406.67 10.383 0 0 1 33 | -51793.3 -3405.51 10.383 0 0 1 34 | -51796.5 -3405.17 10.383 0 0 1 35 | -51799 -3405.71 10.383 0 0 1 36 | -51800.6 -3406.88 10.383 0 0 1 37 | -51800.6 -3407.83 10.383 0 0 1 38 | -51813.7 -3408.12 10.383 0 0 1 39 | -51812.8 -3452.23 10.383 0 0 1 40 | -51800.2 -3451.95 10.383 0 0 1 41 | -51800.2 -3452.55 10.383 0 0 1 42 | -51797.8 -3453.69 10.383 0 0 1 43 | -51795.2 -3454.01 10.383 0 0 1 44 | -51792.5 -3453.53 10.383 0 0 1 45 | -51790.7 -3452.27 10.383 0 0 1 46 | -51788.3 -3453.31 10.383 0 0 1 47 | -51785.7 -3453.63 10.383 0 0 1 48 | -51783 -3453.15 10.383 0 0 1 49 | -51781 -3451.76 10.383 0 0 1 50 | -51781 -3451.53 10.383 0 0 1 51 | -51765.5 -3451.19 10.383 0 0 1 52 | -51766.5 -3407.08 10.383 0 0 1 53 | -51781.5 -3407.41 10.383 0 0 0 54 | -51780 -3538.73 19.469 0 0 1 55 | -51778.6 -3539.5 19.469 0 0 1 56 | -51781.4 -3544.42 19.469 0 0 1 57 | -51783 -3543.55 19.469 0 0 1 58 | -51785.9 -3548.9 19.469 0 0 1 59 | -51784.5 -3549.7 19.469 0 0 1 60 | -51787.3 -3554.58 19.469 0 0 1 61 | -51792.3 -3551.72 19.469 0 0 1 62 | -51809.1 -3580.92 19.469 0 0 1 63 | -51788.9 -3592.6 19.469 0 0 1 64 | -51772 -3563.4 19.469 0 0 1 65 | -51754 -3532.25 19.469 0 0 1 66 | -51769.3 -3523.43 19.469 0 0 1 67 | -51769.4 -3523.68 19.469 0 0 1 68 | -51771 -3522.84 19.469 0 0 1 69 | -51773.9 -3528.19 19.469 0 0 1 70 | -51772.5 -3528.97 19.469 0 0 1 71 | -51775.5 -3534.21 19.469 0 0 1 72 | -51777 -3533.38 19.469 0 0 1 73 | -51780 -3538.73 19.469 0 0 0 74 | -51814.4 -3638.58 18.515 0 0 1 75 | -51779.8 -3658.77 18.515 0 0 1 76 | -51775.8 -3651.79 18.515 0 0 0 77 | -51775.9 -3651.71 18.515 0 0 0 78 | -51769 -3639.75 18.515 0 0 1 79 | -51738.6 -3587.73 18.515 0 0 1 80 | -51738.9 -3587.59 18.515 0 0 1 81 | -51732.2 -3576.16 18.515 0 0 1 82 | -51720.2 -3555.55 18.515 0 0 0 83 | -51720.2 -3555.53 18.515 0 0 1 84 | -51716.9 -3549.79 18.515 0 0 1 85 | -51738.8 -3536.92 18.515 0 0 -1 86 | -51745.6 -3532.9 18.515 0 0 -1 87 | -51748.8 -3531.03 18.515 0 0 -1 88 | -51750.9 -3529.77 18.515 0 0 1 89 | -51814.4 -3638.58 18.515 0 0 0 90 | -51832.6 -3435.39 13.44 0 0 1 91 | -51835.8 -3433.64 13.44 0 0 1 92 | -51841.8 -3430.17 13.44 0 0 1 93 | -51844.1 -3434.24 13.44 0 0 1 94 | -51845.4 -3433.5 13.44 0 0 1 95 | -51848.2 -3438.39 13.44 0 0 0 96 | -51847.5 -3438.82 13.44 0 0 0 97 | -51847.5 -3438.9 13.44 0 0 1 98 | -51845.9 -3439.87 13.44 0 0 1 99 | -51834.7 -3446.32 13.44 0 0 1 100 | -51833 -3443.28 13.44 0 0 1 101 | -51831.9 -3443.89 13.44 0 0 1 102 | -51828.4 -3437.83 13.44 0 0 1 103 | -51832.6 -3435.39 13.44 0 0 0 104 | -51834.9 -3496.39 17.164 0 0 0 105 | -51835.1 -3496.44 17.164 0 0 0 106 | -51835.5 -3496.3 17.164 0 0 1 107 | -51841.1 -3511.81 17.164 0 0 0 108 | -51840.7 -3511.95 17.164 0 0 1 109 | -51837.4 -3513.13 17.164 0 0 1 110 | -51826.3 -3517.04 17.164 0 0 0 111 | -51825.8 -3517.48 17.164 0 0 0 112 | -51825.5 -3517.48 17.164 0 0 0 113 | -51825.5 -3517.33 17.164 0 0 0 114 | -51825.5 -3517.34 17.164 0 0 1 115 | -51819.8 -3501.83 17.164 0 0 1 116 | -51822.5 -3500.87 17.164 0 0 1 117 | -51822 -3499.57 17.164 0 0 1 118 | -51826.5 -3497.75 17.164 0 0 1 119 | -51827.1 -3499.27 17.164 0 0 1 120 | -51834.7 -3496.57 17.164 0 0 0 121 | -51834.9 -3496.39 17.164 0 0 0 122 | -51832.7 -3550.17 23.308 0 0 1 123 | -51833.2 -3549.88 23.308 0 0 1 124 | -51837.4 -3556.92 23.308 0 0 1 125 | -51836.2 -3557.67 23.308 0 0 1 126 | -51838.2 -3560.97 23.308 0 0 1 127 | -51836.7 -3561.83 23.308 0 0 1 128 | -51835.8 -3564.93 23.308 0 0 0 129 | -51835.2 -3565.27 23.308 0 0 -1 130 | -51835.3 -3565.47 23.308 0 0 1 131 | -51820 -3574.68 23.308 0 0 1 132 | -51818.1 -3571.47 23.308 0 0 0 133 | -51818.2 -3571.38 23.308 0 0 1 134 | -51817 -3569.38 23.308 0 0 1 135 | -51811.7 -3572.58 23.308 0 0 1 136 | -51811.4 -3572.83 23.308 0 0 1 137 | -51807.8 -3574.92 23.308 0 0 0 138 | -51807.6 -3574.61 23.308 0 0 1 139 | -51807.4 -3574.25 23.308 0 0 1 140 | -51807.4 -3574.2 23.308 0 0 1 141 | -51810.7 -3572.26 23.308 0 0 1 142 | -51811.1 -3571.93 23.308 0 0 0 143 | -51810.9 -3571.62 23.308 0 0 0 144 | -51810.8 -3571.44 23.308 0 0 1 145 | -51808.3 -3572.97 23.308 0 0 1 146 | -51806.9 -3570.73 23.308 0 0 1 147 | -51805.9 -3571.34 23.308 0 0 1 148 | -51805.2 -3570.18 23.308 0 0 1 149 | -51806.2 -3569.57 23.308 0 0 1 150 | -51805.3 -3568.1 23.308 0 0 1 151 | -51807.4 -3566.86 23.308 0 0 1 152 | -51806.2 -3565.25 23.308 0 0 1 153 | -51807 -3565.04 23.308 0 0 0 154 | -51806.6 -3564.41 23.308 0 0 1 155 | -51816 -3558.79 23.308 0 0 1 156 | -51816.6 -3559.75 23.308 0 0 1 157 | -51819 -3558.29 23.308 0 0 1 158 | -51818.4 -3557.28 23.308 0 0 1 159 | -51823.6 -3554.08 23.308 0 0 1 160 | -51824.2 -3555.17 23.308 0 0 0 161 | -51824.5 -3555.02 23.308 0 0 1 162 | -51822 -3550.72 23.308 0 0 1 163 | -51830.3 -3545.99 23.308 0 0 1 164 | -51832.7 -3550.17 23.308 0 0 0 165 | -51798.1 -3503.45 15.742 0 0 1 166 | -51808.5 -3497.38 15.742 0 0 1 167 | -51817.4 -3512.79 15.742 0 0 1 168 | -51823.6 -3523.43 15.742 0 0 1 169 | -51802.4 -3535.73 15.742 0 0 1 170 | -51793.5 -3520.38 15.742 0 0 1 171 | -51794.5 -3519.79 15.742 0 0 1 172 | -51793.9 -3518.79 15.742 0 0 1 173 | -51795.8 -3517.71 15.742 0 0 1 174 | -51796.3 -3518.71 15.742 0 0 1 175 | -51801.2 -3515.91 15.742 0 0 1 176 | -51800.7 -3515.11 15.742 0 0 1 177 | -51803.8 -3513.34 15.742 0 0 1 178 | -51798.1 -3503.45 15.742 0 0 0 179 | -51773.2 -3350.28 10.8115 0 0 1 180 | -51774.8 -3353.06 10.8115 0 0 0 181 | -51775.2 -3352.8 10.8115 0 0 1 182 | -51776.2 -3354.4 10.8115 0 0 1 183 | -51780.6 -3351.61 10.8115 0 0 1 184 | -51787.2 -3362.89 10.8115 0 0 1 185 | -51782.6 -3365.77 10.8115 0 0 1 186 | -51771.3 -3372.42 10.8115 0 0 1 187 | -51763.7 -3359.53 10.8115 0 0 1 188 | -51764 -3359.36 10.8115 0 0 1 189 | -51762.4 -3356.57 10.8115 0 0 0 190 | -51763.2 -3356.12 10.8115 0 0 1 191 | -51773.1 -3350.33 10.8115 0 0 0 192 | -51773.2 -3350.28 10.8115 0 0 0 193 | -51847.1 -3450.92 10.44 0 0 1 194 | -51840.4 -3454.81 10.44 0 0 1 195 | -51835.9 -3447.02 10.44 0 0 1 196 | -51842.6 -3443.12 10.44 0 0 1 197 | -51847.1 -3450.92 10.44 0 0 0 198 | 3 11 0 1 199 | 3 1 2 3 200 | 3 4 5 6 201 | 3 11 1 3 202 | 3 11 3 4 203 | 3 11 4 6 204 | 3 6 8 10 205 | 3 10 11 6 206 | 3 13 14 15 207 | 3 16 17 18 208 | 3 18 19 20 209 | 3 20 21 22 210 | 3 23 24 25 211 | 3 26 27 28 212 | 3 28 29 30 213 | 3 32 33 34 214 | 3 34 35 36 215 | 3 36 37 38 216 | 3 13 15 16 217 | 3 18 20 22 218 | 3 23 25 26 219 | 3 26 28 30 220 | 3 31 32 34 221 | 3 34 36 38 222 | 3 13 16 18 223 | 3 18 22 23 224 | 3 23 26 30 225 | 3 31 34 38 226 | 3 13 18 23 227 | 3 23 30 31 228 | 3 31 38 13 229 | 3 13 23 31 230 | 3 58 40 41 231 | 3 42 43 44 232 | 3 46 47 48 233 | 3 48 49 50 234 | 3 50 51 52 235 | 3 53 54 55 236 | 3 57 58 41 237 | 3 42 44 45 238 | 3 46 48 50 239 | 3 50 52 53 240 | 3 53 55 56 241 | 3 57 41 42 242 | 3 42 45 46 243 | 3 50 53 56 244 | 3 57 42 46 245 | 3 50 56 57 246 | 3 57 46 50 247 | 3 74 60 61 248 | 3 64 65 66 249 | 3 72 73 74 250 | 3 71 72 74 251 | 3 70 71 74 252 | 3 66 67 69 253 | 3 69 70 74 254 | 3 74 61 64 255 | 3 66 69 74 256 | 3 74 64 66 257 | 3 88 76 77 258 | 3 77 78 79 259 | 3 84 85 86 260 | 3 86 87 88 261 | 3 88 77 79 262 | 3 84 86 88 263 | 3 84 88 79 264 | 3 84 79 80 265 | 3 84 80 83 266 | 3 102 103 104 267 | 3 102 104 105 268 | 3 101 102 105 269 | 3 95 100 101 270 | 3 101 105 92 271 | 3 92 94 95 272 | 3 95 101 92 273 | 3 108 109 110 274 | 3 111 112 113 275 | 3 125 126 127 276 | 3 132 133 134 277 | 3 135 136 137 278 | 3 143 144 145 279 | 3 148 149 108 280 | 3 108 110 111 281 | 3 132 134 135 282 | 3 148 108 111 283 | 3 132 135 137 284 | 3 148 111 113 285 | 3 131 132 137 286 | 3 130 131 137 287 | 3 137 138 140 288 | 3 140 141 142 289 | 3 143 145 147 290 | 3 147 148 113 291 | 3 113 115 116 292 | 3 116 117 119 293 | 3 121 122 124 294 | 3 124 125 127 295 | 3 130 137 140 296 | 3 140 142 143 297 | 3 143 147 113 298 | 3 113 116 119 299 | 3 121 124 127 300 | 3 130 140 143 301 | 3 143 113 119 302 | 3 120 121 127 303 | 3 143 119 120 304 | 3 120 127 130 305 | 3 130 143 120 306 | 3 163 151 152 307 | 3 153 154 155 308 | 3 155 156 157 309 | 3 157 158 159 310 | 3 161 162 163 311 | 3 163 152 153 312 | 3 153 155 157 313 | 3 157 159 160 314 | 3 161 163 153 315 | 3 153 157 160 316 | 3 160 161 153 317 | 3 168 169 170 318 | 3 171 172 173 319 | 3 168 170 171 320 | 3 171 173 174 321 | 3 168 171 174 322 | 3 176 165 167 323 | 3 167 168 174 324 | 3 174 176 167 325 | 3 182 179 180 326 | 3 180 181 182 327 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod0_00.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 13 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 8 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51800.9 -3352.63 7.313 0 0 1 15 | -51799.3 -3353.58 7.313 0 0 1 16 | -51799.8 -3354.49 7.313 0 0 1 17 | -51796.5 -3356.42 7.313 0 0 1 18 | -51796 -3355.51 7.313 0 0 1 19 | -51794.3 -3356.49 7.313 0 0 1 20 | -51790.6 -3350.12 7.313 0 0 1 21 | -51792.2 -3349.15 7.313 0 0 0 22 | -51791.8 -3348.43 7.313 0 0 1 23 | -51795.1 -3346.5 7.313 0 0 0 24 | -51795.5 -3347.22 7.313 0 0 1 25 | -51797.2 -3346.27 7.313 0 0 1 26 | -51800.9 -3352.63 7.313 0 0 0 27 | 3 11 0 1 28 | 3 1 2 3 29 | 3 4 5 6 30 | 3 11 1 3 31 | 3 11 3 4 32 | 3 11 4 6 33 | 3 6 8 10 34 | 3 10 11 6 35 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod0_01.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 27 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 24 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51781.5 -3407.41 10.383 0 0 1 15 | -51781.5 -3406.54 10.383 0 0 1 16 | -51783.7 -3405.45 10.383 0 0 1 17 | -51786.1 -3405.21 10.383 0 0 1 18 | -51788.8 -3405.54 10.383 0 0 1 19 | -51791.3 -3406.67 10.383 0 0 1 20 | -51793.3 -3405.51 10.383 0 0 1 21 | -51796.5 -3405.17 10.383 0 0 1 22 | -51799 -3405.71 10.383 0 0 1 23 | -51800.6 -3406.88 10.383 0 0 1 24 | -51800.6 -3407.83 10.383 0 0 1 25 | -51813.7 -3408.12 10.383 0 0 1 26 | -51812.8 -3452.23 10.383 0 0 1 27 | -51800.2 -3451.95 10.383 0 0 1 28 | -51800.2 -3452.55 10.383 0 0 1 29 | -51797.8 -3453.69 10.383 0 0 1 30 | -51795.2 -3454.01 10.383 0 0 1 31 | -51792.5 -3453.53 10.383 0 0 1 32 | -51790.7 -3452.27 10.383 0 0 1 33 | -51788.3 -3453.31 10.383 0 0 1 34 | -51785.7 -3453.63 10.383 0 0 1 35 | -51783 -3453.15 10.383 0 0 1 36 | -51781 -3451.76 10.383 0 0 1 37 | -51781 -3451.53 10.383 0 0 1 38 | -51765.5 -3451.19 10.383 0 0 1 39 | -51766.5 -3407.08 10.383 0 0 1 40 | -51781.5 -3407.41 10.383 0 0 0 41 | 3 0 1 2 42 | 3 3 4 5 43 | 3 5 6 7 44 | 3 7 8 9 45 | 3 10 11 12 46 | 3 13 14 15 47 | 3 15 16 17 48 | 3 19 20 21 49 | 3 21 22 23 50 | 3 23 24 25 51 | 3 0 2 3 52 | 3 5 7 9 53 | 3 10 12 13 54 | 3 13 15 17 55 | 3 18 19 21 56 | 3 21 23 25 57 | 3 0 3 5 58 | 3 5 9 10 59 | 3 10 13 17 60 | 3 18 21 25 61 | 3 0 5 10 62 | 3 10 17 18 63 | 3 18 25 0 64 | 3 0 10 18 65 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod0_02.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 20 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 17 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51780 -3538.73 19.469 0 0 1 15 | -51778.6 -3539.5 19.469 0 0 1 16 | -51781.4 -3544.42 19.469 0 0 1 17 | -51783 -3543.55 19.469 0 0 1 18 | -51785.9 -3548.9 19.469 0 0 1 19 | -51784.5 -3549.7 19.469 0 0 1 20 | -51787.3 -3554.58 19.469 0 0 1 21 | -51792.3 -3551.72 19.469 0 0 1 22 | -51809.1 -3580.92 19.469 0 0 1 23 | -51788.9 -3592.6 19.469 0 0 1 24 | -51772 -3563.4 19.469 0 0 1 25 | -51754 -3532.25 19.469 0 0 1 26 | -51769.3 -3523.43 19.469 0 0 1 27 | -51769.4 -3523.68 19.469 0 0 1 28 | -51771 -3522.84 19.469 0 0 1 29 | -51773.9 -3528.19 19.469 0 0 1 30 | -51772.5 -3528.97 19.469 0 0 1 31 | -51775.5 -3534.21 19.469 0 0 1 32 | -51777 -3533.38 19.469 0 0 1 33 | -51780 -3538.73 19.469 0 0 0 34 | 3 18 0 1 35 | 3 2 3 4 36 | 3 6 7 8 37 | 3 8 9 10 38 | 3 10 11 12 39 | 3 13 14 15 40 | 3 17 18 1 41 | 3 2 4 5 42 | 3 6 8 10 43 | 3 10 12 13 44 | 3 13 15 16 45 | 3 17 1 2 46 | 3 2 5 6 47 | 3 10 13 16 48 | 3 17 2 6 49 | 3 10 16 17 50 | 3 17 6 10 51 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod0_03.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 16 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 10 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51814.4 -3638.58 18.515 0 0 1 15 | -51779.8 -3658.77 18.515 0 0 1 16 | -51775.8 -3651.79 18.515 0 0 0 17 | -51775.9 -3651.71 18.515 0 0 0 18 | -51769 -3639.75 18.515 0 0 1 19 | -51738.6 -3587.73 18.515 0 0 1 20 | -51738.9 -3587.59 18.515 0 0 1 21 | -51732.2 -3576.16 18.515 0 0 1 22 | -51720.2 -3555.55 18.515 0 0 0 23 | -51720.2 -3555.53 18.515 0 0 1 24 | -51716.9 -3549.79 18.515 0 0 1 25 | -51738.8 -3536.92 18.515 0 0 -1 26 | -51745.6 -3532.9 18.515 0 0 -1 27 | -51748.8 -3531.03 18.515 0 0 -1 28 | -51750.9 -3529.77 18.515 0 0 1 29 | -51814.4 -3638.58 18.515 0 0 0 30 | 3 14 0 1 31 | 3 4 5 6 32 | 3 12 13 14 33 | 3 11 12 14 34 | 3 10 11 14 35 | 3 6 7 9 36 | 3 9 10 14 37 | 3 14 1 4 38 | 3 6 9 14 39 | 3 14 4 6 40 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod0_04.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 14 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 9 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51832.6 -3435.39 13.44 0 0 1 15 | -51835.8 -3433.64 13.44 0 0 1 16 | -51841.8 -3430.17 13.44 0 0 1 17 | -51844.1 -3434.24 13.44 0 0 1 18 | -51845.4 -3433.5 13.44 0 0 1 19 | -51848.2 -3438.39 13.44 0 0 0 20 | -51847.5 -3438.82 13.44 0 0 0 21 | -51847.5 -3438.9 13.44 0 0 1 22 | -51845.9 -3439.87 13.44 0 0 1 23 | -51834.7 -3446.32 13.44 0 0 1 24 | -51833 -3443.28 13.44 0 0 1 25 | -51831.9 -3443.89 13.44 0 0 1 26 | -51828.4 -3437.83 13.44 0 0 1 27 | -51832.6 -3435.39 13.44 0 0 0 28 | 3 12 0 1 29 | 3 1 2 3 30 | 3 8 9 10 31 | 3 10 11 12 32 | 3 12 1 3 33 | 3 8 10 12 34 | 3 8 12 3 35 | 3 8 3 4 36 | 3 8 4 7 37 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod0_05.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 18 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 7 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51834.9 -3496.39 17.164 0 0 0 15 | -51835.1 -3496.44 17.164 0 0 0 16 | -51835.5 -3496.3 17.164 0 0 1 17 | -51841.1 -3511.81 17.164 0 0 0 18 | -51840.7 -3511.95 17.164 0 0 1 19 | -51837.4 -3513.13 17.164 0 0 1 20 | -51826.3 -3517.04 17.164 0 0 0 21 | -51825.8 -3517.48 17.164 0 0 0 22 | -51825.5 -3517.48 17.164 0 0 0 23 | -51825.5 -3517.33 17.164 0 0 0 24 | -51825.5 -3517.34 17.164 0 0 1 25 | -51819.8 -3501.83 17.164 0 0 1 26 | -51822.5 -3500.87 17.164 0 0 1 27 | -51822 -3499.57 17.164 0 0 1 28 | -51826.5 -3497.75 17.164 0 0 1 29 | -51827.1 -3499.27 17.164 0 0 1 30 | -51834.7 -3496.57 17.164 0 0 0 31 | -51834.9 -3496.39 17.164 0 0 0 32 | 3 12 13 14 33 | 3 12 14 15 34 | 3 11 12 15 35 | 3 5 10 11 36 | 3 11 15 2 37 | 3 2 4 5 38 | 3 5 11 2 39 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod0_06.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 43 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 33 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51832.7 -3550.17 23.308 0 0 1 15 | -51833.2 -3549.88 23.308 0 0 1 16 | -51837.4 -3556.92 23.308 0 0 1 17 | -51836.2 -3557.67 23.308 0 0 1 18 | -51838.2 -3560.97 23.308 0 0 1 19 | -51836.7 -3561.83 23.308 0 0 1 20 | -51835.8 -3564.93 23.308 0 0 0 21 | -51835.2 -3565.27 23.308 0 0 -1 22 | -51835.3 -3565.47 23.308 0 0 1 23 | -51820 -3574.68 23.308 0 0 1 24 | -51818.1 -3571.47 23.308 0 0 0 25 | -51818.2 -3571.38 23.308 0 0 1 26 | -51817 -3569.38 23.308 0 0 1 27 | -51811.7 -3572.58 23.308 0 0 1 28 | -51811.4 -3572.83 23.308 0 0 1 29 | -51807.8 -3574.92 23.308 0 0 0 30 | -51807.6 -3574.61 23.308 0 0 1 31 | -51807.4 -3574.25 23.308 0 0 1 32 | -51807.4 -3574.2 23.308 0 0 1 33 | -51810.7 -3572.26 23.308 0 0 1 34 | -51811.1 -3571.93 23.308 0 0 0 35 | -51810.9 -3571.62 23.308 0 0 0 36 | -51810.8 -3571.44 23.308 0 0 1 37 | -51808.3 -3572.97 23.308 0 0 1 38 | -51806.9 -3570.73 23.308 0 0 1 39 | -51805.9 -3571.34 23.308 0 0 1 40 | -51805.2 -3570.18 23.308 0 0 1 41 | -51806.2 -3569.57 23.308 0 0 1 42 | -51805.3 -3568.1 23.308 0 0 1 43 | -51807.4 -3566.86 23.308 0 0 1 44 | -51806.2 -3565.25 23.308 0 0 1 45 | -51807 -3565.04 23.308 0 0 0 46 | -51806.6 -3564.41 23.308 0 0 1 47 | -51816 -3558.79 23.308 0 0 1 48 | -51816.6 -3559.75 23.308 0 0 1 49 | -51819 -3558.29 23.308 0 0 1 50 | -51818.4 -3557.28 23.308 0 0 1 51 | -51823.6 -3554.08 23.308 0 0 1 52 | -51824.2 -3555.17 23.308 0 0 0 53 | -51824.5 -3555.02 23.308 0 0 1 54 | -51822 -3550.72 23.308 0 0 1 55 | -51830.3 -3545.99 23.308 0 0 1 56 | -51832.7 -3550.17 23.308 0 0 0 57 | 3 0 1 2 58 | 3 3 4 5 59 | 3 17 18 19 60 | 3 24 25 26 61 | 3 27 28 29 62 | 3 35 36 37 63 | 3 40 41 0 64 | 3 0 2 3 65 | 3 24 26 27 66 | 3 40 0 3 67 | 3 24 27 29 68 | 3 40 3 5 69 | 3 23 24 29 70 | 3 22 23 29 71 | 3 29 30 32 72 | 3 32 33 34 73 | 3 35 37 39 74 | 3 39 40 5 75 | 3 5 7 8 76 | 3 8 9 11 77 | 3 13 14 16 78 | 3 16 17 19 79 | 3 22 29 32 80 | 3 32 34 35 81 | 3 35 39 5 82 | 3 5 8 11 83 | 3 13 16 19 84 | 3 22 32 35 85 | 3 35 5 11 86 | 3 12 13 19 87 | 3 35 11 12 88 | 3 12 19 22 89 | 3 22 35 12 90 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod0_07.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 14 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 11 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51798.1 -3503.45 15.742 0 0 1 15 | -51808.5 -3497.38 15.742 0 0 1 16 | -51817.4 -3512.79 15.742 0 0 1 17 | -51823.6 -3523.43 15.742 0 0 1 18 | -51802.4 -3535.73 15.742 0 0 1 19 | -51793.5 -3520.38 15.742 0 0 1 20 | -51794.5 -3519.79 15.742 0 0 1 21 | -51793.9 -3518.79 15.742 0 0 1 22 | -51795.8 -3517.71 15.742 0 0 1 23 | -51796.3 -3518.71 15.742 0 0 1 24 | -51801.2 -3515.91 15.742 0 0 1 25 | -51800.7 -3515.11 15.742 0 0 1 26 | -51803.8 -3513.34 15.742 0 0 1 27 | -51798.1 -3503.45 15.742 0 0 0 28 | 3 12 0 1 29 | 3 2 3 4 30 | 3 4 5 6 31 | 3 6 7 8 32 | 3 10 11 12 33 | 3 12 1 2 34 | 3 2 4 6 35 | 3 6 8 9 36 | 3 10 12 2 37 | 3 2 6 9 38 | 3 9 10 2 39 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod0_08.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 14 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 8 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51773.2 -3350.28 10.8115 0 0 1 15 | -51774.8 -3353.06 10.8115 0 0 0 16 | -51775.2 -3352.8 10.8115 0 0 1 17 | -51776.2 -3354.4 10.8115 0 0 1 18 | -51780.6 -3351.61 10.8115 0 0 1 19 | -51787.2 -3362.89 10.8115 0 0 1 20 | -51782.6 -3365.77 10.8115 0 0 1 21 | -51771.3 -3372.42 10.8115 0 0 1 22 | -51763.7 -3359.53 10.8115 0 0 1 23 | -51764 -3359.36 10.8115 0 0 1 24 | -51762.4 -3356.57 10.8115 0 0 0 25 | -51763.2 -3356.12 10.8115 0 0 1 26 | -51773.1 -3350.33 10.8115 0 0 0 27 | -51773.2 -3350.28 10.8115 0 0 0 28 | 3 3 4 5 29 | 3 6 7 8 30 | 3 3 5 6 31 | 3 6 8 9 32 | 3 3 6 9 33 | 3 11 0 2 34 | 3 2 3 9 35 | 3 9 11 2 36 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod0_09.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 5 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 2 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51847.1 -3450.92 10.44 0 0 1 15 | -51840.4 -3454.81 10.44 0 0 1 16 | -51835.9 -3447.02 10.44 0 0 1 17 | -51842.6 -3443.12 10.44 0 0 1 18 | -51847.1 -3450.92 10.44 0 0 0 19 | 3 3 0 1 20 | 3 1 2 3 21 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod1_00.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 86 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 40 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51800.9 -3352.63 3.602 0 0 -1 15 | -51797.2 -3346.27 3.602 0 0 -1 16 | -51795.5 -3347.22 3.602 0 0 0 17 | -51795.1 -3346.5 3.602 0 0 -1 18 | -51791.8 -3348.43 3.602 0 0 0 19 | -51792.2 -3349.15 3.602 0 0 -1 20 | -51790.6 -3350.12 3.602 0 0 -1 21 | -51794.3 -3356.49 3.602 0 0 -1 22 | -51796 -3355.51 3.602 0 0 -1 23 | -51796.5 -3356.42 3.602 0 0 -1 24 | -51799.8 -3354.49 3.602 0 0 -1 25 | -51799.3 -3353.58 3.602 0 0 -1 26 | -51800.9 -3352.63 3.602 0 0 0 27 | -51800.9 -3352.63 3.602 -0.862829 0.505496 0 28 | -51800.9 -3352.63 7.313 -0.862829 0.505496 0 29 | -51797.2 -3346.27 7.313 -0.862829 0.505496 0 30 | -51797.2 -3346.27 3.602 -0.862829 0.505496 0 31 | -51800.9 -3352.63 3.602 0 0 0 32 | -51797.2 -3346.27 3.602 0.50556 0.862791 0 33 | -51797.2 -3346.27 7.313 0.50556 0.862791 0 34 | -51795.5 -3347.22 7.313 0.50556 0.862791 0 35 | -51795.5 -3347.22 3.602 0.50556 0.862791 0 36 | -51797.2 -3346.27 3.602 0 0 0 37 | -51795.5 -3347.22 3.602 -0.862777 0.505584 0 38 | -51795.5 -3347.22 7.313 -0.862777 0.505584 0 39 | -51795.1 -3346.5 7.313 -0.862777 0.505584 0 40 | -51795.1 -3346.5 3.602 -0.862777 0.505584 0 41 | -51795.5 -3347.22 3.602 0 0 0 42 | -51795.1 -3346.5 3.602 0.505557 0.862793 0 43 | -51795.1 -3346.5 7.313 0.505557 0.862793 0 44 | -51791.8 -3348.43 7.313 0.505557 0.862793 0 45 | -51791.8 -3348.43 3.602 0.505557 0.862793 0 46 | -51795.1 -3346.5 3.602 0 0 0 47 | -51791.8 -3348.43 3.602 0.862882 -0.505406 0 48 | -51791.8 -3348.43 7.313 0.862882 -0.505406 0 49 | -51792.2 -3349.15 7.313 0.862882 -0.505406 0 50 | -51792.2 -3349.15 3.602 0.862882 -0.505406 0 51 | -51791.8 -3348.43 3.602 0 0 0 52 | -51792.2 -3349.15 3.602 0.505559 0.862792 0 53 | -51792.2 -3349.15 7.313 0.505559 0.862792 0 54 | -51790.6 -3350.12 7.313 0.505559 0.862792 0 55 | -51790.6 -3350.12 3.602 0.505559 0.862792 0 56 | -51792.2 -3349.15 3.602 0 0 0 57 | -51790.6 -3350.12 3.602 0.862825 -0.505503 0 58 | -51790.6 -3350.12 7.313 0.862825 -0.505503 0 59 | -51794.3 -3356.49 7.313 0.862825 -0.505503 0 60 | -51794.3 -3356.49 3.602 0.862825 -0.505503 0 61 | -51790.6 -3350.12 3.602 0 0 0 62 | -51794.3 -3356.49 3.602 -0.505287 -0.862951 0 63 | -51794.3 -3356.49 7.313 -0.505287 -0.862951 0 64 | -51796 -3355.51 7.313 -0.505287 -0.862951 0 65 | -51796 -3355.51 3.602 -0.505287 -0.862951 0 66 | -51794.3 -3356.49 3.602 0 0 0 67 | -51796 -3355.51 3.602 0.862732 -0.505661 0 68 | -51796 -3355.51 7.313 0.862732 -0.505661 0 69 | -51796.5 -3356.42 7.313 0.862732 -0.505661 0 70 | -51796.5 -3356.42 3.602 0.862732 -0.505661 0 71 | -51796 -3355.51 3.602 0 0 0 72 | -51796.5 -3356.42 3.602 -0.505294 -0.862947 0 73 | -51796.5 -3356.42 7.313 -0.505294 -0.862947 0 74 | -51799.8 -3354.49 7.313 -0.505294 -0.862947 0 75 | -51799.8 -3354.49 3.602 -0.505294 -0.862947 0 76 | -51796.5 -3356.42 3.602 0 0 0 77 | -51799.8 -3354.49 3.602 -0.86284 0.505478 0 78 | -51799.8 -3354.49 7.313 -0.86284 0.505478 0 79 | -51799.3 -3353.58 7.313 -0.86284 0.505478 0 80 | -51799.3 -3353.58 3.602 -0.86284 0.505478 0 81 | -51799.8 -3354.49 3.602 0 0 0 82 | -51799.3 -3353.58 3.602 -0.505287 -0.862951 0 83 | -51799.3 -3353.58 7.313 -0.505287 -0.862951 0 84 | -51800.9 -3352.63 7.313 -0.505287 -0.862951 0 85 | -51800.9 -3352.63 3.602 -0.505287 -0.862951 0 86 | -51799.3 -3353.58 3.602 0 0 0 87 | -51800.9 -3352.63 7.313 0 0 1 88 | -51799.3 -3353.58 7.313 0 0 1 89 | -51799.8 -3354.49 7.313 0 0 1 90 | -51796.5 -3356.42 7.313 0 0 1 91 | -51796 -3355.51 7.313 0 0 1 92 | -51794.3 -3356.49 7.313 0 0 1 93 | -51790.6 -3350.12 7.313 0 0 1 94 | -51792.2 -3349.15 7.313 0 0 0 95 | -51791.8 -3348.43 7.313 0 0 1 96 | -51795.1 -3346.5 7.313 0 0 0 97 | -51795.5 -3347.22 7.313 0 0 1 98 | -51797.2 -3346.27 7.313 0 0 1 99 | -51800.9 -3352.63 7.313 0 0 0 100 | 3 11 0 1 101 | 3 6 7 8 102 | 3 8 9 10 103 | 3 6 8 10 104 | 3 6 10 11 105 | 3 6 11 1 106 | 3 1 3 5 107 | 3 5 6 1 108 | 3 16 13 14 109 | 3 14 15 16 110 | 3 21 18 19 111 | 3 19 20 21 112 | 3 26 23 24 113 | 3 24 25 26 114 | 3 31 28 29 115 | 3 29 30 31 116 | 3 36 33 34 117 | 3 34 35 36 118 | 3 41 38 39 119 | 3 39 40 41 120 | 3 46 43 44 121 | 3 44 45 46 122 | 3 51 48 49 123 | 3 49 50 51 124 | 3 56 53 54 125 | 3 54 55 56 126 | 3 61 58 59 127 | 3 59 60 61 128 | 3 66 63 64 129 | 3 64 65 66 130 | 3 71 68 69 131 | 3 69 70 71 132 | 3 84 73 74 133 | 3 74 75 76 134 | 3 77 78 79 135 | 3 84 74 76 136 | 3 84 76 77 137 | 3 84 77 79 138 | 3 79 81 83 139 | 3 83 84 79 140 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod1_01.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 174 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 95 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51781.5 -3407.41 3.168 0 0 -1 15 | -51766.5 -3407.08 3.168 0 0 -1 16 | -51765.5 -3451.19 3.168 0 0 -1 17 | -51781 -3451.53 3.168 0 0 -1 18 | -51781 -3451.76 3.168 0 0 -1 19 | -51783 -3453.15 3.168 0 0 -1 20 | -51785.7 -3453.63 3.168 0 0 -1 21 | -51788.3 -3453.31 3.168 0 0 -1 22 | -51790.7 -3452.27 3.168 0 0 -1 23 | -51792.5 -3453.53 3.168 0 0 -1 24 | -51795.2 -3454.01 3.168 0 0 -1 25 | -51797.8 -3453.69 3.168 0 0 -1 26 | -51800.2 -3452.55 3.168 0 0 -1 27 | -51800.2 -3451.95 3.168 0 0 -1 28 | -51812.8 -3452.23 3.168 0 0 -1 29 | -51813.7 -3408.12 3.168 0 0 -1 30 | -51800.6 -3407.83 3.168 0 0 -1 31 | -51800.6 -3406.88 3.168 0 0 -1 32 | -51799 -3405.71 3.168 0 0 -1 33 | -51796.5 -3405.17 3.168 0 0 -1 34 | -51793.3 -3405.51 3.168 0 0 -1 35 | -51791.3 -3406.67 3.168 0 0 -1 36 | -51788.8 -3405.54 3.168 0 0 -1 37 | -51786.1 -3405.21 3.168 0 0 -1 38 | -51783.7 -3405.45 3.168 0 0 -1 39 | -51781.5 -3406.54 3.168 0 0 -1 40 | -51781.5 -3407.41 3.168 0 0 0 41 | -51781.5 -3407.41 3.168 -0.0219422 0.999759 0 42 | -51781.5 -3407.41 10.383 -0.0219422 0.999759 0 43 | -51766.5 -3407.08 10.383 -0.0219422 0.999759 0 44 | -51766.5 -3407.08 3.168 -0.0219422 0.999759 0 45 | -51781.5 -3407.41 3.168 0 0 0 46 | -51766.5 -3407.08 3.168 0.999759 0.0219336 0 47 | -51766.5 -3407.08 10.383 0.999759 0.0219336 0 48 | -51765.5 -3451.19 10.383 0.999759 0.0219336 0 49 | -51765.5 -3451.19 3.168 0.999759 0.0219336 0 50 | -51766.5 -3407.08 3.168 0 0 0 51 | -51765.5 -3451.19 3.168 0.0219902 -0.999758 0 52 | -51765.5 -3451.19 10.383 0.0219902 -0.999758 0 53 | -51781 -3451.53 10.383 0.0219902 -0.999758 0 54 | -51781 -3451.53 3.168 0.0219902 -0.999758 0 55 | -51765.5 -3451.19 3.168 0 0 0 56 | -51781 -3451.76 3.168 0.585658 -0.810558 0 57 | -51781 -3451.76 10.383 0.585658 -0.810558 0 58 | -51783 -3453.15 10.383 0.585658 -0.810558 0 59 | -51783 -3453.15 3.168 0.585658 -0.810558 0 60 | -51781 -3451.76 3.168 0 0 0 61 | -51783 -3453.15 3.168 0.172385 -0.98503 0 62 | -51783 -3453.15 10.383 0.172385 -0.98503 0 63 | -51785.7 -3453.63 10.383 0.172385 -0.98503 0 64 | -51785.7 -3453.63 3.168 0.172385 -0.98503 0 65 | -51783 -3453.15 3.168 0 0 0 66 | -51785.7 -3453.63 3.168 -0.121514 -0.99259 0 67 | -51785.7 -3453.63 10.383 -0.121514 -0.99259 0 68 | -51788.3 -3453.31 10.383 -0.121514 -0.99259 0 69 | -51788.3 -3453.31 3.168 -0.121514 -0.99259 0 70 | -51785.7 -3453.63 3.168 0 0 0 71 | -51788.3 -3453.31 3.168 -0.40456 -0.914512 0 72 | -51788.3 -3453.31 10.383 -0.40456 -0.914512 0 73 | -51790.7 -3452.27 10.383 -0.40456 -0.914512 0 74 | -51790.7 -3452.27 3.168 -0.40456 -0.914512 0 75 | -51788.3 -3453.31 3.168 0 0 0 76 | -51790.7 -3452.27 3.168 0.562055 -0.8271 0 77 | -51790.7 -3452.27 10.383 0.562055 -0.8271 0 78 | -51792.5 -3453.53 10.383 0.562055 -0.8271 0 79 | -51792.5 -3453.53 3.168 0.562055 -0.8271 0 80 | -51790.7 -3452.27 3.168 0 0 0 81 | -51792.5 -3453.53 3.168 0.175471 -0.984485 0 82 | -51792.5 -3453.53 10.383 0.175471 -0.984485 0 83 | -51795.2 -3454.01 10.383 0.175471 -0.984485 0 84 | -51795.2 -3454.01 3.168 0.175471 -0.984485 0 85 | -51792.5 -3453.53 3.168 0 0 0 86 | -51795.2 -3454.01 3.168 -0.122034 -0.992526 0 87 | -51795.2 -3454.01 10.383 -0.122034 -0.992526 0 88 | -51797.8 -3453.69 10.383 -0.122034 -0.992526 0 89 | -51797.8 -3453.69 3.168 -0.122034 -0.992526 0 90 | -51795.2 -3454.01 3.168 0 0 0 91 | -51797.8 -3453.69 3.168 -0.438879 -0.898546 0 92 | -51797.8 -3453.69 10.383 -0.438879 -0.898546 0 93 | -51800.2 -3452.55 10.383 -0.438879 -0.898546 0 94 | -51800.2 -3452.55 3.168 -0.438879 -0.898546 0 95 | -51797.8 -3453.69 3.168 0 0 0 96 | -51800.2 -3451.95 3.168 0.0219744 -0.999759 0 97 | -51800.2 -3451.95 10.383 0.0219744 -0.999759 0 98 | -51812.8 -3452.23 10.383 0.0219744 -0.999759 0 99 | -51812.8 -3452.23 3.168 0.0219744 -0.999759 0 100 | -51800.2 -3451.95 3.168 0 0 0 101 | -51812.8 -3452.23 3.168 -0.999761 -0.0218627 0 102 | -51812.8 -3452.23 10.383 -0.999761 -0.0218627 0 103 | -51813.7 -3408.12 10.383 -0.999761 -0.0218627 0 104 | -51813.7 -3408.12 3.168 -0.999761 -0.0218627 0 105 | -51812.8 -3452.23 3.168 0 0 0 106 | -51813.7 -3408.12 3.168 -0.0219611 0.999759 0 107 | -51813.7 -3408.12 10.383 -0.0219611 0.999759 0 108 | -51800.6 -3407.83 10.383 -0.0219611 0.999759 0 109 | -51800.6 -3407.83 3.168 -0.0219611 0.999759 0 110 | -51813.7 -3408.12 3.168 0 0 0 111 | -51800.6 -3407.83 3.168 0 0 0 112 | -51800.6 -3407.83 10.383 -0.998851 -0.047922 0 113 | -51800.6 -3406.88 10.383 -0.998851 -0.047922 0 114 | -51800.6 -3406.88 3.168 -0.998851 -0.047922 0 115 | -51800.6 -3407.83 3.168 0 0 0 116 | -51800.6 -3406.88 3.168 -0.576886 0.816825 0 117 | -51800.6 -3406.88 10.383 -0.576886 0.816825 0 118 | -51799 -3405.71 10.383 -0.576886 0.816825 0 119 | -51799 -3405.71 3.168 -0.576886 0.816825 0 120 | -51800.6 -3406.88 3.168 0 0 0 121 | -51799 -3405.71 3.168 -0.210711 0.977548 0 122 | -51799 -3405.71 10.383 -0.210711 0.977548 0 123 | -51796.5 -3405.17 10.383 -0.210711 0.977548 0 124 | -51796.5 -3405.17 3.168 -0.210711 0.977548 0 125 | -51799 -3405.71 3.168 0 0 0 126 | -51796.5 -3405.17 3.168 0.104812 0.994492 0 127 | -51796.5 -3405.17 10.383 0.104812 0.994492 0 128 | -51793.3 -3405.51 10.383 0.104812 0.994492 0 129 | -51793.3 -3405.51 3.168 0.104812 0.994492 0 130 | -51796.5 -3405.17 3.168 0 0 0 131 | -51793.3 -3405.51 3.168 0.50823 0.861222 0 132 | -51793.3 -3405.51 10.383 0.50823 0.861222 0 133 | -51791.3 -3406.67 10.383 0.50823 0.861222 0 134 | -51791.3 -3406.67 3.168 0.50823 0.861222 0 135 | -51793.3 -3405.51 3.168 0 0 0 136 | -51791.3 -3406.67 3.168 -0.4115 0.91141 0 137 | -51791.3 -3406.67 10.383 -0.4115 0.91141 0 138 | -51788.8 -3405.54 10.383 -0.4115 0.91141 0 139 | -51788.8 -3405.54 3.168 -0.4115 0.91141 0 140 | -51791.3 -3406.67 3.168 0 0 0 141 | -51788.8 -3405.54 3.168 -0.122136 0.992513 0 142 | -51788.8 -3405.54 10.383 -0.122136 0.992513 0 143 | -51786.1 -3405.21 10.383 -0.122136 0.992513 0 144 | -51786.1 -3405.21 3.168 -0.122136 0.992513 0 145 | -51788.8 -3405.54 3.168 0 0 0 146 | -51786.1 -3405.21 3.168 0.095195 0.995459 0 147 | -51786.1 -3405.21 10.383 0.095195 0.995459 0 148 | -51783.7 -3405.45 10.383 0.095195 0.995459 0 149 | -51783.7 -3405.45 3.168 0.095195 0.995459 0 150 | -51786.1 -3405.21 3.168 0 0 0 151 | -51783.7 -3405.45 3.168 0.449065 0.893499 0 152 | -51783.7 -3405.45 10.383 0.449065 0.893499 0 153 | -51781.5 -3406.54 10.383 0.449065 0.893499 0 154 | -51781.5 -3406.54 3.168 0.449065 0.893499 0 155 | -51783.7 -3405.45 3.168 0 0 0 156 | -51781.5 -3406.54 3.168 0.998821 0.0485466 0 157 | -51781.5 -3406.54 10.383 0.998821 0.0485466 0 158 | -51781.5 -3407.41 10.383 0.998821 0.0485466 0 159 | -51781.5 -3407.41 3.168 0.998821 0.0485466 0 160 | -51781.5 -3406.54 3.168 0 0 0 161 | -51781.5 -3407.41 10.383 0 0 1 162 | -51781.5 -3406.54 10.383 0 0 1 163 | -51783.7 -3405.45 10.383 0 0 1 164 | -51786.1 -3405.21 10.383 0 0 1 165 | -51788.8 -3405.54 10.383 0 0 1 166 | -51791.3 -3406.67 10.383 0 0 1 167 | -51793.3 -3405.51 10.383 0 0 1 168 | -51796.5 -3405.17 10.383 0 0 1 169 | -51799 -3405.71 10.383 0 0 1 170 | -51800.6 -3406.88 10.383 0 0 1 171 | -51800.6 -3407.83 10.383 0 0 1 172 | -51813.7 -3408.12 10.383 0 0 1 173 | -51812.8 -3452.23 10.383 0 0 1 174 | -51800.2 -3451.95 10.383 0 0 1 175 | -51800.2 -3452.55 10.383 0 0 1 176 | -51797.8 -3453.69 10.383 0 0 1 177 | -51795.2 -3454.01 10.383 0 0 1 178 | -51792.5 -3453.53 10.383 0 0 1 179 | -51790.7 -3452.27 10.383 0 0 1 180 | -51788.3 -3453.31 10.383 0 0 1 181 | -51785.7 -3453.63 10.383 0 0 1 182 | -51783 -3453.15 10.383 0 0 1 183 | -51781 -3451.76 10.383 0 0 1 184 | -51781 -3451.53 10.383 0 0 1 185 | -51765.5 -3451.19 10.383 0 0 1 186 | -51766.5 -3407.08 10.383 0 0 1 187 | -51781.5 -3407.41 10.383 0 0 0 188 | 3 0 1 2 189 | 3 3 4 5 190 | 3 5 6 7 191 | 3 8 9 10 192 | 3 11 12 13 193 | 3 13 14 15 194 | 3 16 17 18 195 | 3 19 20 21 196 | 3 21 22 23 197 | 3 23 24 25 198 | 3 0 2 3 199 | 3 3 5 7 200 | 3 8 10 11 201 | 3 11 13 15 202 | 3 16 18 19 203 | 3 21 23 25 204 | 3 0 3 7 205 | 3 8 11 15 206 | 3 16 19 21 207 | 3 21 25 0 208 | 3 0 7 8 209 | 3 8 15 16 210 | 3 16 21 0 211 | 3 0 8 16 212 | 3 30 27 28 213 | 3 28 29 30 214 | 3 35 32 33 215 | 3 33 34 35 216 | 3 40 37 38 217 | 3 38 39 40 218 | 3 45 42 43 219 | 3 43 44 45 220 | 3 50 47 48 221 | 3 48 49 50 222 | 3 55 52 53 223 | 3 53 54 55 224 | 3 60 57 58 225 | 3 58 59 60 226 | 3 65 62 63 227 | 3 63 64 65 228 | 3 70 67 68 229 | 3 68 69 70 230 | 3 75 72 73 231 | 3 73 74 75 232 | 3 80 77 78 233 | 3 78 79 80 234 | 3 85 82 83 235 | 3 83 84 85 236 | 3 90 87 88 237 | 3 88 89 90 238 | 3 95 92 93 239 | 3 93 94 95 240 | 3 99 100 98 241 | 3 105 102 103 242 | 3 103 104 105 243 | 3 110 107 108 244 | 3 108 109 110 245 | 3 115 112 113 246 | 3 113 114 115 247 | 3 120 117 118 248 | 3 118 119 120 249 | 3 125 122 123 250 | 3 123 124 125 251 | 3 130 127 128 252 | 3 128 129 130 253 | 3 135 132 133 254 | 3 133 134 135 255 | 3 140 137 138 256 | 3 138 139 140 257 | 3 145 142 143 258 | 3 143 144 145 259 | 3 147 148 149 260 | 3 150 151 152 261 | 3 152 153 154 262 | 3 154 155 156 263 | 3 157 158 159 264 | 3 160 161 162 265 | 3 162 163 164 266 | 3 166 167 168 267 | 3 168 169 170 268 | 3 170 171 172 269 | 3 147 149 150 270 | 3 152 154 156 271 | 3 157 159 160 272 | 3 160 162 164 273 | 3 165 166 168 274 | 3 168 170 172 275 | 3 147 150 152 276 | 3 152 156 157 277 | 3 157 160 164 278 | 3 165 168 172 279 | 3 147 152 157 280 | 3 157 164 165 281 | 3 165 172 147 282 | 3 147 157 165 283 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod1_02.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 135 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 72 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51780 -3538.73 3.457 0 0 -1 15 | -51777 -3533.38 3.457 0 0 -1 16 | -51775.5 -3534.21 3.457 0 0 -1 17 | -51772.5 -3528.97 3.457 0 0 -1 18 | -51773.9 -3528.19 3.457 0 0 -1 19 | -51771 -3522.84 3.457 0 0 -1 20 | -51769.4 -3523.68 3.457 0 0 -1 21 | -51769.3 -3523.43 3.457 0 0 -1 22 | -51754 -3532.25 3.457 0 0 -1 23 | -51772 -3563.4 3.457 0 0 -1 24 | -51788.9 -3592.6 3.457 0 0 -1 25 | -51809.1 -3580.92 3.457 0 0 -1 26 | -51792.3 -3551.72 3.457 0 0 -1 27 | -51787.3 -3554.58 3.457 0 0 -1 28 | -51784.5 -3549.7 3.457 0 0 -1 29 | -51785.9 -3548.9 3.457 0 0 -1 30 | -51783 -3543.55 3.457 0 0 -1 31 | -51781.4 -3544.42 3.457 0 0 -1 32 | -51778.6 -3539.5 3.457 0 0 -1 33 | -51780 -3538.73 3.457 0 0 0 34 | -51780 -3538.73 3.457 -0.876318 0.481733 0 35 | -51780 -3538.73 19.469 -0.876318 0.481733 0 36 | -51777 -3533.38 19.469 -0.876318 0.481733 0 37 | -51777 -3533.38 3.457 -0.876318 0.481733 0 38 | -51780 -3538.73 3.457 0 0 0 39 | -51777 -3533.38 3.457 0.481583 0.8764 0 40 | -51777 -3533.38 19.469 0.481583 0.8764 0 41 | -51775.5 -3534.21 19.469 0.481583 0.8764 0 42 | -51775.5 -3534.21 3.457 0.481583 0.8764 0 43 | -51777 -3533.38 3.457 0 0 0 44 | -51775.5 -3534.21 3.457 -0.865746 0.500483 0 45 | -51775.5 -3534.21 19.469 -0.865746 0.500483 0 46 | -51772.5 -3528.97 19.469 -0.865746 0.500483 0 47 | -51772.5 -3528.97 3.457 -0.865746 0.500483 0 48 | -51775.5 -3534.21 3.457 0 0 0 49 | -51772.5 -3528.97 3.457 -0.481421 -0.876489 0 50 | -51772.5 -3528.97 19.469 -0.481421 -0.876489 0 51 | -51773.9 -3528.19 19.469 -0.481421 -0.876489 0 52 | -51773.9 -3528.19 3.457 -0.481421 -0.876489 0 53 | -51772.5 -3528.97 3.457 0 0 0 54 | -51773.9 -3528.19 3.457 -0.87635 0.481675 0 55 | -51773.9 -3528.19 19.469 -0.87635 0.481675 0 56 | -51771 -3522.84 19.469 -0.87635 0.481675 0 57 | -51771 -3522.84 3.457 -0.87635 0.481675 0 58 | -51773.9 -3528.19 3.457 0 0 0 59 | -51771 -3522.84 3.457 0.481695 0.876339 0 60 | -51771 -3522.84 19.469 0.481695 0.876339 0 61 | -51769.4 -3523.68 19.469 0.481695 0.876339 0 62 | -51769.4 -3523.68 3.457 0.481695 0.876339 0 63 | -51771 -3522.84 3.457 0 0 0 64 | -51769.4 -3523.68 3.457 -0.864576 0.502503 0 65 | -51769.4 -3523.68 19.469 -0.864576 0.502503 0 66 | -51769.3 -3523.43 19.469 -0.864576 0.502503 0 67 | -51769.3 -3523.43 3.457 -0.864576 0.502503 0 68 | -51769.4 -3523.68 3.457 0 0 0 69 | -51769.3 -3523.43 3.457 0.500351 0.865822 0 70 | -51769.3 -3523.43 19.469 0.500351 0.865822 0 71 | -51754 -3532.25 19.469 0.500351 0.865822 0 72 | -51754 -3532.25 3.457 0.500351 0.865822 0 73 | -51769.3 -3523.43 3.457 0 0 0 74 | -51754 -3532.25 3.457 0.865754 -0.50047 0 75 | -51754 -3532.25 19.469 0.865754 -0.50047 0 76 | -51772 -3563.4 19.469 0.865754 -0.50047 0 77 | -51772 -3563.4 3.457 0.865754 -0.50047 0 78 | -51754 -3532.25 3.457 0 0 0 79 | -51772 -3563.4 3.457 0.865739 -0.500497 0 80 | -51772 -3563.4 19.469 0.865739 -0.500497 0 81 | -51788.9 -3592.6 19.469 0.865739 -0.500497 0 82 | -51788.9 -3592.6 3.457 0.865739 -0.500497 0 83 | -51772 -3563.4 3.457 0 0 0 84 | -51788.9 -3592.6 3.457 -0.500381 -0.865805 0 85 | -51788.9 -3592.6 19.469 -0.500381 -0.865805 0 86 | -51809.1 -3580.92 19.469 -0.500381 -0.865805 0 87 | -51809.1 -3580.92 3.457 -0.500381 -0.865805 0 88 | -51788.9 -3592.6 3.457 0 0 0 89 | -51809.1 -3580.92 3.457 -0.865733 0.500506 0 90 | -51809.1 -3580.92 19.469 -0.865733 0.500506 0 91 | -51792.3 -3551.72 19.469 -0.865733 0.500506 0 92 | -51792.3 -3551.72 3.457 -0.865733 0.500506 0 93 | -51809.1 -3580.92 3.457 0 0 0 94 | -51792.3 -3551.72 3.457 0.500332 0.865834 0 95 | -51792.3 -3551.72 19.469 0.500332 0.865834 0 96 | -51787.3 -3554.58 19.469 0.500332 0.865834 0 97 | -51787.3 -3554.58 3.457 0.500332 0.865834 0 98 | -51792.3 -3551.72 3.457 0 0 0 99 | -51787.3 -3554.58 3.457 -0.865747 0.500481 0 100 | -51787.3 -3554.58 19.469 -0.865747 0.500481 0 101 | -51784.5 -3549.7 19.469 -0.865747 0.500481 0 102 | -51784.5 -3549.7 3.457 -0.865747 0.500481 0 103 | -51787.3 -3554.58 3.457 0 0 0 104 | -51784.5 -3549.7 3.457 -0.481536 -0.876426 0 105 | -51784.5 -3549.7 19.469 -0.481536 -0.876426 0 106 | -51785.9 -3548.9 19.469 -0.481536 -0.876426 0 107 | -51785.9 -3548.9 3.457 -0.481536 -0.876426 0 108 | -51784.5 -3549.7 3.457 0 0 0 109 | -51785.9 -3548.9 3.457 -0.876308 0.481751 0 110 | -51785.9 -3548.9 19.469 -0.876308 0.481751 0 111 | -51783 -3543.55 19.469 -0.876308 0.481751 0 112 | -51783 -3543.55 3.457 -0.876308 0.481751 0 113 | -51785.9 -3548.9 3.457 0 0 0 114 | -51783 -3543.55 3.457 0.48141 0.876496 0 115 | -51783 -3543.55 19.469 0.48141 0.876496 0 116 | -51781.4 -3544.42 19.469 0.48141 0.876496 0 117 | -51781.4 -3544.42 3.457 0.48141 0.876496 0 118 | -51783 -3543.55 3.457 0 0 0 119 | -51781.4 -3544.42 3.457 -0.865748 0.50048 0 120 | -51781.4 -3544.42 19.469 -0.865748 0.50048 0 121 | -51778.6 -3539.5 19.469 -0.865748 0.50048 0 122 | -51778.6 -3539.5 3.457 -0.865748 0.50048 0 123 | -51781.4 -3544.42 3.457 0 0 0 124 | -51778.6 -3539.5 3.457 -0.482027 -0.876156 0 125 | -51778.6 -3539.5 19.469 -0.482027 -0.876156 0 126 | -51780 -3538.73 19.469 -0.482027 -0.876156 0 127 | -51780 -3538.73 3.457 -0.482027 -0.876156 0 128 | -51778.6 -3539.5 3.457 0 0 0 129 | -51780 -3538.73 19.469 0 0 1 130 | -51778.6 -3539.5 19.469 0 0 1 131 | -51781.4 -3544.42 19.469 0 0 1 132 | -51783 -3543.55 19.469 0 0 1 133 | -51785.9 -3548.9 19.469 0 0 1 134 | -51784.5 -3549.7 19.469 0 0 1 135 | -51787.3 -3554.58 19.469 0 0 1 136 | -51792.3 -3551.72 19.469 0 0 1 137 | -51809.1 -3580.92 19.469 0 0 1 138 | -51788.9 -3592.6 19.469 0 0 1 139 | -51772 -3563.4 19.469 0 0 1 140 | -51754 -3532.25 19.469 0 0 1 141 | -51769.3 -3523.43 19.469 0 0 1 142 | -51769.4 -3523.68 19.469 0 0 1 143 | -51771 -3522.84 19.469 0 0 1 144 | -51773.9 -3528.19 19.469 0 0 1 145 | -51772.5 -3528.97 19.469 0 0 1 146 | -51775.5 -3534.21 19.469 0 0 1 147 | -51777 -3533.38 19.469 0 0 1 148 | -51780 -3538.73 19.469 0 0 0 149 | 3 18 0 1 150 | 3 3 4 5 151 | 3 6 7 8 152 | 3 9 10 11 153 | 3 11 12 13 154 | 3 14 15 16 155 | 3 18 1 2 156 | 3 3 5 6 157 | 3 6 8 9 158 | 3 9 11 13 159 | 3 14 16 17 160 | 3 17 18 2 161 | 3 2 3 6 162 | 3 9 13 14 163 | 3 2 6 9 164 | 3 9 14 17 165 | 3 17 2 9 166 | 3 23 20 21 167 | 3 21 22 23 168 | 3 28 25 26 169 | 3 26 27 28 170 | 3 33 30 31 171 | 3 31 32 33 172 | 3 38 35 36 173 | 3 36 37 38 174 | 3 43 40 41 175 | 3 41 42 43 176 | 3 48 45 46 177 | 3 46 47 48 178 | 3 53 50 51 179 | 3 51 52 53 180 | 3 58 55 56 181 | 3 56 57 58 182 | 3 63 60 61 183 | 3 61 62 63 184 | 3 68 65 66 185 | 3 66 67 68 186 | 3 73 70 71 187 | 3 71 72 73 188 | 3 78 75 76 189 | 3 76 77 78 190 | 3 83 80 81 191 | 3 81 82 83 192 | 3 88 85 86 193 | 3 86 87 88 194 | 3 93 90 91 195 | 3 91 92 93 196 | 3 98 95 96 197 | 3 96 97 98 198 | 3 103 100 101 199 | 3 101 102 103 200 | 3 108 105 106 201 | 3 106 107 108 202 | 3 113 110 111 203 | 3 111 112 113 204 | 3 133 115 116 205 | 3 117 118 119 206 | 3 121 122 123 207 | 3 123 124 125 208 | 3 125 126 127 209 | 3 128 129 130 210 | 3 132 133 116 211 | 3 117 119 120 212 | 3 121 123 125 213 | 3 125 127 128 214 | 3 128 130 131 215 | 3 132 116 117 216 | 3 117 120 121 217 | 3 125 128 131 218 | 3 132 117 121 219 | 3 125 131 132 220 | 3 132 121 125 221 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod1_03.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 97 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 46 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51814.4 -3638.58 3.268 0 0 -1 15 | -51750.9 -3529.77 3.268 0 0 -1 16 | -51748.8 -3531.03 3.268 0 0 1 17 | -51745.6 -3532.9 3.268 0 0 -1 18 | -51738.8 -3536.92 3.268 0 0 -1 19 | -51716.9 -3549.79 3.268 0 0 -1 20 | -51720.2 -3555.53 3.268 0 0 0 21 | -51720.2 -3555.55 3.268 0 0 -1 22 | -51732.2 -3576.16 3.268 0 0 1 23 | -51738.9 -3587.59 3.268 0 0 -1 24 | -51738.6 -3587.73 3.268 0 0 -1 25 | -51769 -3639.75 3.268 0 0 -1 26 | -51775.9 -3651.71 3.268 0 0 0 27 | -51775.8 -3651.79 3.268 0 0 0 28 | -51779.8 -3658.77 3.268 0 0 -1 29 | -51814.4 -3638.58 3.268 0 0 0 30 | -51814.4 -3638.58 3.268 -0.86382 0.503801 0 31 | -51814.4 -3638.58 18.515 -0.86382 0.503801 0 32 | -51750.9 -3529.77 18.515 -0.86382 0.503801 0 33 | -51750.9 -3529.77 3.268 -0.86382 0.503801 0 34 | -51814.4 -3638.58 3.268 0 0 0 35 | -51750.9 -3529.77 3.268 0.507602 0.861592 0 36 | -51750.9 -3529.77 18.515 0.507602 0.861592 0 37 | -51748.8 -3531.03 18.515 0.507602 0.861592 0 38 | -51748.8 -3531.03 3.268 0.507602 0.861592 0 39 | -51750.9 -3529.77 3.268 0 0 0 40 | -51748.8 -3531.03 3.268 0.507447 0.861683 0 41 | -51748.8 -3531.03 18.515 0.507447 0.861683 0 42 | -51745.6 -3532.9 18.515 0.507447 0.861683 0 43 | -51745.6 -3532.9 3.268 0.507447 0.861683 0 44 | -51748.8 -3531.03 3.268 0 0 0 45 | -51745.6 -3532.9 3.268 0.50744 0.861687 0 46 | -51745.6 -3532.9 18.515 0.50744 0.861687 0 47 | -51738.8 -3536.92 18.515 0.50744 0.861687 0 48 | -51738.8 -3536.92 3.268 0.50744 0.861687 0 49 | -51745.6 -3532.9 3.268 0 0 0 50 | -51738.8 -3536.92 3.268 0.507452 0.86168 0 51 | -51738.8 -3536.92 18.515 0.507452 0.86168 0 52 | -51716.9 -3549.79 18.515 0.507452 0.86168 0 53 | -51716.9 -3549.79 3.268 0.507452 0.86168 0 54 | -51738.8 -3536.92 3.268 0 0 0 55 | -51716.9 -3549.79 3.268 0.866502 -0.499173 0 56 | -51716.9 -3549.79 18.515 0.866502 -0.499173 0 57 | -51720.2 -3555.53 18.515 0.866502 -0.499173 0 58 | -51720.2 -3555.53 3.268 0.866502 -0.499173 0 59 | -51716.9 -3549.79 3.268 0 0 0 60 | -51720.2 -3555.55 3.268 0.863733 -0.50395 0 61 | -51720.2 -3555.55 18.515 0.863733 -0.50395 0 62 | -51732.2 -3576.16 18.515 0.863733 -0.50395 0 63 | -51732.2 -3576.16 3.268 0.863733 -0.50395 0 64 | -51720.2 -3555.55 3.268 0 0 0 65 | -51732.2 -3576.16 3.268 0.863735 -0.503946 0 66 | -51732.2 -3576.16 18.515 0.863735 -0.503946 0 67 | -51738.9 -3587.59 18.515 0.863735 -0.503946 0 68 | -51738.9 -3587.59 3.268 0.863735 -0.503946 0 69 | -51732.2 -3576.16 3.268 0 0 0 70 | -51738.9 -3587.59 3.268 0.505819 0.86264 0 71 | -51738.9 -3587.59 18.515 0.505819 0.86264 0 72 | -51738.6 -3587.73 18.515 0.505819 0.86264 0 73 | -51738.6 -3587.73 3.268 0.505819 0.86264 0 74 | -51738.9 -3587.59 3.268 0 0 0 75 | -51738.6 -3587.73 3.268 0.863774 -0.50388 0 76 | -51738.6 -3587.73 18.515 0.863774 -0.50388 0 77 | -51769 -3639.75 18.515 0.863774 -0.50388 0 78 | -51769 -3639.75 3.268 0.863774 -0.50388 0 79 | -51738.6 -3587.73 3.268 0 0 0 80 | -51769 -3639.75 3.268 0.863791 -0.50385 0 81 | -51769 -3639.75 18.515 0.863791 -0.50385 0 82 | -51775.9 -3651.71 18.515 0.863791 -0.50385 0 83 | -51775.9 -3651.71 3.268 0.863791 -0.50385 0 84 | -51769 -3639.75 3.268 0 0 0 85 | -51775.8 -3651.79 3.268 0.8666 -0.499003 0 86 | -51775.8 -3651.79 18.515 0.8666 -0.499003 0 87 | -51779.8 -3658.77 18.515 0.8666 -0.499003 0 88 | -51779.8 -3658.77 3.268 0.8666 -0.499003 0 89 | -51775.8 -3651.79 3.268 0 0 0 90 | -51779.8 -3658.77 3.268 -0.504472 -0.863428 0 91 | -51779.8 -3658.77 18.515 -0.504472 -0.863428 0 92 | -51814.4 -3638.58 18.515 -0.504472 -0.863428 0 93 | -51814.4 -3638.58 3.268 -0.504472 -0.863428 0 94 | -51779.8 -3658.77 3.268 0 0 0 95 | -51814.4 -3638.58 18.515 0 0 1 96 | -51779.8 -3658.77 18.515 0 0 1 97 | -51775.8 -3651.79 18.515 0 0 0 98 | -51775.9 -3651.71 18.515 0 0 0 99 | -51769 -3639.75 18.515 0 0 1 100 | -51738.6 -3587.73 18.515 0 0 1 101 | -51738.9 -3587.59 18.515 0 0 1 102 | -51732.2 -3576.16 18.515 0 0 1 103 | -51720.2 -3555.55 18.515 0 0 0 104 | -51720.2 -3555.53 18.515 0 0 1 105 | -51716.9 -3549.79 18.515 0 0 1 106 | -51738.8 -3536.92 18.515 0 0 -1 107 | -51745.6 -3532.9 18.515 0 0 -1 108 | -51748.8 -3531.03 18.515 0 0 -1 109 | -51750.9 -3529.77 18.515 0 0 1 110 | -51814.4 -3638.58 18.515 0 0 0 111 | 3 14 0 1 112 | 3 1 2 3 113 | 3 9 10 11 114 | 3 14 1 3 115 | 3 14 3 4 116 | 3 11 14 4 117 | 3 4 5 7 118 | 3 7 8 9 119 | 3 9 11 4 120 | 3 4 7 9 121 | 3 19 16 17 122 | 3 17 18 19 123 | 3 24 21 22 124 | 3 22 23 24 125 | 3 29 26 27 126 | 3 27 28 29 127 | 3 34 31 32 128 | 3 32 33 34 129 | 3 39 36 37 130 | 3 37 38 39 131 | 3 44 41 42 132 | 3 42 43 44 133 | 3 49 46 47 134 | 3 47 48 49 135 | 3 54 51 52 136 | 3 52 53 54 137 | 3 59 56 57 138 | 3 57 58 59 139 | 3 64 61 62 140 | 3 62 63 64 141 | 3 69 66 67 142 | 3 67 68 69 143 | 3 74 71 72 144 | 3 72 73 74 145 | 3 79 76 77 146 | 3 77 78 79 147 | 3 95 81 82 148 | 3 85 86 87 149 | 3 93 94 95 150 | 3 92 93 95 151 | 3 91 92 95 152 | 3 87 88 90 153 | 3 90 91 95 154 | 3 95 82 85 155 | 3 87 90 95 156 | 3 95 85 87 157 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod1_04.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 93 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 42 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51832.6 -3435.39 3.756 0 0 -1 15 | -51828.4 -3437.83 3.756 0 0 -1 16 | -51831.9 -3443.89 3.756 0 0 -1 17 | -51833 -3443.28 3.756 0 0 -1 18 | -51834.7 -3446.32 3.756 0 0 -1 19 | -51845.9 -3439.87 3.756 0 0 -1 20 | -51847.5 -3438.9 3.756 0 0 0 21 | -51847.5 -3438.82 3.756 0 0 0 22 | -51848.2 -3438.39 3.756 0 0 -1 23 | -51845.4 -3433.5 3.756 0 0 -1 24 | -51844.1 -3434.24 3.756 0 0 -1 25 | -51841.8 -3430.17 3.756 0 0 -1 26 | -51835.8 -3433.64 3.756 0 0 -1 27 | -51832.6 -3435.39 3.756 0 0 0 28 | -51832.6 -3435.39 3.756 0.499085 0.866553 0 29 | -51832.6 -3435.39 13.44 0.499085 0.866553 0 30 | -51828.4 -3437.83 13.44 0.499085 0.866553 0 31 | -51828.4 -3437.83 3.756 0.499085 0.866553 0 32 | -51832.6 -3435.39 3.756 0 0 0 33 | -51828.4 -3437.83 3.756 0.86659 -0.49902 0 34 | -51828.4 -3437.83 13.44 0.86659 -0.49902 0 35 | -51831.9 -3443.89 13.44 0.86659 -0.49902 0 36 | -51831.9 -3443.89 3.756 0.86659 -0.49902 0 37 | -51828.4 -3437.83 3.756 0 0 0 38 | -51831.9 -3443.89 3.756 -0.499142 -0.86652 0 39 | -51831.9 -3443.89 13.44 -0.499142 -0.86652 0 40 | -51833 -3443.28 13.44 -0.499142 -0.86652 0 41 | -51833 -3443.28 3.756 -0.499142 -0.86652 0 42 | -51831.9 -3443.89 3.756 0 0 0 43 | -51833 -3443.28 3.756 0.866539 -0.49911 0 44 | -51833 -3443.28 13.44 0.866539 -0.49911 0 45 | -51834.7 -3446.32 13.44 0.866539 -0.49911 0 46 | -51834.7 -3446.32 3.756 0.866539 -0.49911 0 47 | -51833 -3443.28 3.756 0 0 0 48 | -51834.7 -3446.32 3.756 -0.499875 -0.866097 0 49 | -51834.7 -3446.32 13.44 -0.499875 -0.866097 0 50 | -51845.9 -3439.87 13.44 -0.499875 -0.866097 0 51 | -51845.9 -3439.87 3.756 -0.499875 -0.866097 0 52 | -51834.7 -3446.32 3.756 0 0 0 53 | -51845.9 -3439.87 3.756 -0.50476 -0.86326 0 54 | -51845.9 -3439.87 13.44 -0.50476 -0.86326 0 55 | -51847.5 -3438.9 13.44 -0.50476 -0.86326 0 56 | -51847.5 -3438.9 3.756 -0.50476 -0.86326 0 57 | -51845.9 -3439.87 3.756 0 0 0 58 | -51847.5 -3438.9 3.756 0 0 0 59 | -51847.5 -3438.9 13.44 -0.866622 0.498964 0 60 | -51847.5 -3438.82 13.44 -0.866622 0.498964 0 61 | -51847.5 -3438.82 3.756 -0.866622 0.498964 0 62 | -51847.5 -3438.9 3.756 0 0 0 63 | -51847.5 -3438.82 3.756 0 0 0 64 | -51847.5 -3438.82 13.44 -0.498864 -0.86668 0 65 | -51848.2 -3438.39 13.44 -0.498864 -0.86668 0 66 | -51848.2 -3438.39 3.756 -0.498864 -0.86668 0 67 | -51847.5 -3438.82 3.756 0 0 0 68 | -51848.2 -3438.39 3.756 -0.866452 0.49926 0 69 | -51848.2 -3438.39 13.44 -0.866452 0.49926 0 70 | -51845.4 -3433.5 13.44 -0.866452 0.49926 0 71 | -51845.4 -3433.5 3.756 -0.866452 0.49926 0 72 | -51848.2 -3438.39 3.756 0 0 0 73 | -51845.4 -3433.5 3.756 0.499116 0.866535 0 74 | -51845.4 -3433.5 13.44 0.499116 0.866535 0 75 | -51844.1 -3434.24 13.44 0.499116 0.866535 0 76 | -51844.1 -3434.24 3.756 0.499116 0.866535 0 77 | -51845.4 -3433.5 3.756 0 0 0 78 | -51844.1 -3434.24 3.756 -0.866591 0.499019 0 79 | -51844.1 -3434.24 13.44 -0.866591 0.499019 0 80 | -51841.8 -3430.17 13.44 -0.866591 0.499019 0 81 | -51841.8 -3430.17 3.756 -0.866591 0.499019 0 82 | -51844.1 -3434.24 3.756 0 0 0 83 | -51841.8 -3430.17 3.756 0.499049 0.866574 0 84 | -51841.8 -3430.17 13.44 0.499049 0.866574 0 85 | -51835.8 -3433.64 13.44 0.499049 0.866574 0 86 | -51835.8 -3433.64 3.756 0.499049 0.866574 0 87 | -51841.8 -3430.17 3.756 0 0 0 88 | -51835.8 -3433.64 3.756 0.48725 0.873262 0 89 | -51835.8 -3433.64 13.44 0.48725 0.873262 0 90 | -51832.6 -3435.39 13.44 0.48725 0.873262 0 91 | -51832.6 -3435.39 3.756 0.48725 0.873262 0 92 | -51835.8 -3433.64 3.756 0 0 0 93 | -51832.6 -3435.39 13.44 0 0 1 94 | -51835.8 -3433.64 13.44 0 0 1 95 | -51841.8 -3430.17 13.44 0 0 1 96 | -51844.1 -3434.24 13.44 0 0 1 97 | -51845.4 -3433.5 13.44 0 0 1 98 | -51848.2 -3438.39 13.44 0 0 0 99 | -51847.5 -3438.82 13.44 0 0 0 100 | -51847.5 -3438.9 13.44 0 0 1 101 | -51845.9 -3439.87 13.44 0 0 1 102 | -51834.7 -3446.32 13.44 0 0 1 103 | -51833 -3443.28 13.44 0 0 1 104 | -51831.9 -3443.89 13.44 0 0 1 105 | -51828.4 -3437.83 13.44 0 0 1 106 | -51832.6 -3435.39 13.44 0 0 0 107 | 3 12 0 1 108 | 3 1 2 3 109 | 3 3 4 5 110 | 3 10 11 12 111 | 3 12 1 3 112 | 3 10 12 3 113 | 3 9 10 3 114 | 3 9 3 5 115 | 3 9 5 8 116 | 3 17 14 15 117 | 3 15 16 17 118 | 3 22 19 20 119 | 3 20 21 22 120 | 3 27 24 25 121 | 3 25 26 27 122 | 3 32 29 30 123 | 3 30 31 32 124 | 3 37 34 35 125 | 3 35 36 37 126 | 3 42 39 40 127 | 3 40 41 42 128 | 3 46 47 45 129 | 3 51 52 50 130 | 3 57 54 55 131 | 3 55 56 57 132 | 3 62 59 60 133 | 3 60 61 62 134 | 3 67 64 65 135 | 3 65 66 67 136 | 3 72 69 70 137 | 3 70 71 72 138 | 3 77 74 75 139 | 3 75 76 77 140 | 3 91 79 80 141 | 3 80 81 82 142 | 3 87 88 89 143 | 3 89 90 91 144 | 3 91 80 82 145 | 3 87 89 91 146 | 3 87 91 82 147 | 3 87 82 83 148 | 3 87 83 86 149 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod1_05.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 101 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 39 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51834.9 -3496.39 3.434 0 0 0 15 | -51834.7 -3496.57 3.434 0 0 -1 16 | -51827.1 -3499.27 3.434 0 0 -1 17 | -51826.5 -3497.75 3.434 0 0 -1 18 | -51822 -3499.57 3.434 0 0 -1 19 | -51822.5 -3500.87 3.434 0 0 -1 20 | -51819.8 -3501.83 3.434 0 0 -1 21 | -51825.5 -3517.34 3.434 0 0 0 22 | -51825.5 -3517.33 3.434 0 0 0 23 | -51825.5 -3517.48 3.434 0 0 0 24 | -51825.8 -3517.48 3.434 0 0 0 25 | -51826.3 -3517.04 3.434 0 0 -1 26 | -51837.4 -3513.13 3.434 0 0 -1 27 | -51840.7 -3511.95 3.434 0 0 0 28 | -51841.1 -3511.81 3.434 0 0 -1 29 | -51835.5 -3496.3 3.434 0 0 0 30 | -51835.1 -3496.44 3.434 0 0 0 31 | -51834.9 -3496.39 3.434 0 0 0 32 | -51834.9 -3496.39 3.434 0.609661 0.792662 0 33 | -51834.9 -3496.39 17.164 0 0 0 34 | -51834.7 -3496.57 17.164 0.609661 0.792662 0 35 | -51834.7 -3496.57 3.434 0.609661 0.792662 0 36 | -51834.9 -3496.39 3.434 0 0 0 37 | -51834.7 -3496.57 3.434 0.333679 0.942687 0 38 | -51834.7 -3496.57 17.164 0.333679 0.942687 0 39 | -51827.1 -3499.27 17.164 0.333679 0.942687 0 40 | -51827.1 -3499.27 3.434 0.333679 0.942687 0 41 | -51834.7 -3496.57 3.434 0 0 0 42 | -51827.1 -3499.27 3.434 -0.929742 0.368212 0 43 | -51827.1 -3499.27 17.164 -0.929742 0.368212 0 44 | -51826.5 -3497.75 17.164 -0.929742 0.368212 0 45 | -51826.5 -3497.75 3.434 -0.929742 0.368212 0 46 | -51827.1 -3499.27 3.434 0 0 0 47 | -51826.5 -3497.75 3.434 0.378203 0.925723 0 48 | -51826.5 -3497.75 17.164 0.378203 0.925723 0 49 | -51822 -3499.57 17.164 0.378203 0.925723 0 50 | -51822 -3499.57 3.434 0.378203 0.925723 0 51 | -51826.5 -3497.75 3.434 0 0 0 52 | -51822 -3499.57 3.434 0.929801 -0.368063 0 53 | -51822 -3499.57 17.164 0.929801 -0.368063 0 54 | -51822.5 -3500.87 17.164 0.929801 -0.368063 0 55 | -51822.5 -3500.87 3.434 0.929801 -0.368063 0 56 | -51822 -3499.57 3.434 0 0 0 57 | -51822.5 -3500.87 3.434 0.333719 0.942673 0 58 | -51822.5 -3500.87 17.164 0.333719 0.942673 0 59 | -51819.8 -3501.83 17.164 0.333719 0.942673 0 60 | -51819.8 -3501.83 3.434 0.333719 0.942673 0 61 | -51822.5 -3500.87 3.434 0 0 0 62 | -51819.8 -3501.83 3.434 0.939508 -0.342526 0 63 | -51819.8 -3501.83 17.164 0.939508 -0.342526 0 64 | -51825.5 -3517.34 17.164 0.939508 -0.342526 0 65 | -51825.5 -3517.34 3.434 0.939508 -0.342526 0 66 | -51819.8 -3501.83 3.434 0 0 0 67 | -51825.8 -3517.48 3.434 -0.644812 -0.764341 0 68 | -51825.8 -3517.48 17.164 -0.644812 -0.764341 0 69 | -51826.3 -3517.04 17.164 -0.644812 -0.764341 0 70 | -51826.3 -3517.04 3.434 -0.644812 -0.764341 0 71 | -51825.8 -3517.48 3.434 0 0 0 72 | -51826.3 -3517.04 3.434 -0.333725 -0.94267 0 73 | -51826.3 -3517.04 17.164 -0.333725 -0.94267 0 74 | -51837.4 -3513.13 17.164 -0.333725 -0.94267 0 75 | -51837.4 -3513.13 3.434 -0.333725 -0.94267 0 76 | -51826.3 -3517.04 3.434 0 0 0 77 | -51837.4 -3513.13 3.434 -0.333223 -0.942848 0 78 | -51837.4 -3513.13 17.164 -0.333223 -0.942848 0 79 | -51840.7 -3511.95 17.164 -0.333223 -0.942848 0 80 | -51840.7 -3511.95 3.434 -0.333223 -0.942848 0 81 | -51837.4 -3513.13 3.434 0 0 0 82 | -51840.7 -3511.95 3.434 -0.338333 -0.941027 0 83 | -51840.7 -3511.95 17.164 -0.338333 -0.941027 0 84 | -51841.1 -3511.81 17.164 -0.338333 -0.941027 0 85 | -51841.1 -3511.81 3.434 -0.338333 -0.941027 0 86 | -51840.7 -3511.95 3.434 0 0 0 87 | -51841.1 -3511.81 3.434 -0.939479 0.342607 0 88 | -51841.1 -3511.81 17.164 -0.939479 0.342607 0 89 | -51835.5 -3496.3 17.164 -0.939479 0.342607 0 90 | -51835.5 -3496.3 3.434 -0.939479 0.342607 0 91 | -51841.1 -3511.81 3.434 0 0 0 92 | -51835.5 -3496.3 3.434 0.333755 0.94266 0 93 | -51835.5 -3496.3 17.164 0.333755 0.94266 0 94 | -51835.1 -3496.44 17.164 0.333755 0.94266 0 95 | -51835.1 -3496.44 3.434 0.333755 0.94266 0 96 | -51835.5 -3496.3 3.434 0 0 0 97 | -51834.9 -3496.39 17.164 0 0 0 98 | -51835.1 -3496.44 17.164 0 0 0 99 | -51835.5 -3496.3 17.164 0 0 1 100 | -51841.1 -3511.81 17.164 0 0 0 101 | -51840.7 -3511.95 17.164 0 0 1 102 | -51837.4 -3513.13 17.164 0 0 1 103 | -51826.3 -3517.04 17.164 0 0 0 104 | -51825.8 -3517.48 17.164 0 0 0 105 | -51825.5 -3517.48 17.164 0 0 0 106 | -51825.5 -3517.33 17.164 0 0 0 107 | -51825.5 -3517.34 17.164 0 0 1 108 | -51819.8 -3501.83 17.164 0 0 1 109 | -51822.5 -3500.87 17.164 0 0 1 110 | -51822 -3499.57 17.164 0 0 1 111 | -51826.5 -3497.75 17.164 0 0 1 112 | -51827.1 -3499.27 17.164 0 0 1 113 | -51834.7 -3496.57 17.164 0 0 0 114 | -51834.9 -3496.39 17.164 0 0 0 115 | 3 2 3 4 116 | 3 2 4 5 117 | 3 2 5 6 118 | 3 12 14 1 119 | 3 1 2 6 120 | 3 6 11 12 121 | 3 12 1 6 122 | 3 21 18 20 123 | 3 26 23 24 124 | 3 24 25 26 125 | 3 31 28 29 126 | 3 29 30 31 127 | 3 36 33 34 128 | 3 34 35 36 129 | 3 41 38 39 130 | 3 39 40 41 131 | 3 46 43 44 132 | 3 44 45 46 133 | 3 51 48 49 134 | 3 49 50 51 135 | 3 56 53 54 136 | 3 54 55 56 137 | 3 61 58 59 138 | 3 59 60 61 139 | 3 66 63 64 140 | 3 64 65 66 141 | 3 71 68 69 142 | 3 69 70 71 143 | 3 76 73 74 144 | 3 74 75 76 145 | 3 81 78 79 146 | 3 79 80 81 147 | 3 95 96 97 148 | 3 95 97 98 149 | 3 94 95 98 150 | 3 88 93 94 151 | 3 94 98 85 152 | 3 85 87 88 153 | 3 88 94 85 154 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod1_07.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 93 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 48 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51798.1 -3503.45 3.27 0 0 -1 15 | -51803.8 -3513.34 3.27 0 0 -1 16 | -51800.7 -3515.11 3.27 0 0 -1 17 | -51801.2 -3515.91 3.27 0 0 -1 18 | -51796.3 -3518.71 3.27 0 0 -1 19 | -51795.8 -3517.71 3.27 0 0 -1 20 | -51793.9 -3518.79 3.27 0 0 -1 21 | -51794.5 -3519.79 3.27 0 0 -1 22 | -51793.5 -3520.38 3.27 0 0 -1 23 | -51802.4 -3535.73 3.27 0 0 -1 24 | -51823.6 -3523.43 3.27 0 0 -1 25 | -51817.4 -3512.79 3.27 0 0 -1 26 | -51808.5 -3497.38 3.27 0 0 -1 27 | -51798.1 -3503.45 3.27 0 0 0 28 | -51798.1 -3503.45 3.27 0.865215 -0.501401 0 29 | -51798.1 -3503.45 15.742 0.865215 -0.501401 0 30 | -51803.8 -3513.34 15.742 0.865215 -0.501401 0 31 | -51803.8 -3513.34 3.27 0.865215 -0.501401 0 32 | -51798.1 -3503.45 3.27 0 0 0 33 | -51803.8 -3513.34 3.27 0.501305 0.865271 0 34 | -51803.8 -3513.34 15.742 0.501305 0.865271 0 35 | -51800.7 -3515.11 15.742 0.501305 0.865271 0 36 | -51800.7 -3515.11 3.27 0.501305 0.865271 0 37 | -51803.8 -3513.34 3.27 0 0 0 38 | -51800.7 -3515.11 3.27 0.865193 -0.50144 0 39 | -51800.7 -3515.11 15.742 0.865193 -0.50144 0 40 | -51801.2 -3515.91 15.742 0.865193 -0.50144 0 41 | -51801.2 -3515.91 3.27 0.865193 -0.50144 0 42 | -51800.7 -3515.11 3.27 0 0 0 43 | -51801.2 -3515.91 3.27 0.501352 0.865244 0 44 | -51801.2 -3515.91 15.742 0.501352 0.865244 0 45 | -51796.3 -3518.71 15.742 0.501352 0.865244 0 46 | -51796.3 -3518.71 3.27 0.501352 0.865244 0 47 | -51801.2 -3515.91 3.27 0 0 0 48 | -51796.3 -3518.71 3.27 -0.865032 0.501717 0 49 | -51796.3 -3518.71 15.742 -0.865032 0.501717 0 50 | -51795.8 -3517.71 15.742 -0.865032 0.501717 0 51 | -51795.8 -3517.71 3.27 -0.865032 0.501717 0 52 | -51796.3 -3518.71 3.27 0 0 0 53 | -51795.8 -3517.71 3.27 0.501316 0.865265 0 54 | -51795.8 -3517.71 15.742 0.501316 0.865265 0 55 | -51793.9 -3518.79 15.742 0.501316 0.865265 0 56 | -51793.9 -3518.79 3.27 0.501316 0.865265 0 57 | -51795.8 -3517.71 3.27 0 0 0 58 | -51793.9 -3518.79 3.27 0.865151 -0.501512 0 59 | -51793.9 -3518.79 15.742 0.865151 -0.501512 0 60 | -51794.5 -3519.79 15.742 0.865151 -0.501512 0 61 | -51794.5 -3519.79 3.27 0.865151 -0.501512 0 62 | -51793.9 -3518.79 3.27 0 0 0 63 | -51794.5 -3519.79 3.27 0.501364 0.865237 0 64 | -51794.5 -3519.79 15.742 0.501364 0.865237 0 65 | -51793.5 -3520.38 15.742 0.501364 0.865237 0 66 | -51793.5 -3520.38 3.27 0.501364 0.865237 0 67 | -51794.5 -3519.79 3.27 0 0 0 68 | -51793.5 -3520.38 3.27 0.865164 -0.501489 0 69 | -51793.5 -3520.38 15.742 0.865164 -0.501489 0 70 | -51802.4 -3535.73 15.742 0.865164 -0.501489 0 71 | -51802.4 -3535.73 3.27 0.865164 -0.501489 0 72 | -51793.5 -3520.38 3.27 0 0 0 73 | -51802.4 -3535.73 3.27 -0.501311 -0.865267 0 74 | -51802.4 -3535.73 15.742 -0.501311 -0.865267 0 75 | -51823.6 -3523.43 15.742 -0.501311 -0.865267 0 76 | -51823.6 -3523.43 3.27 -0.501311 -0.865267 0 77 | -51802.4 -3535.73 3.27 0 0 0 78 | -51823.6 -3523.43 3.27 -0.865687 0.500586 0 79 | -51823.6 -3523.43 15.742 -0.865687 0.500586 0 80 | -51817.4 -3512.79 15.742 -0.865687 0.500586 0 81 | -51817.4 -3512.79 3.27 -0.865687 0.500586 0 82 | -51823.6 -3523.43 3.27 0 0 0 83 | -51817.4 -3512.79 3.27 -0.865549 0.500825 0 84 | -51817.4 -3512.79 15.742 -0.865549 0.500825 0 85 | -51808.5 -3497.38 15.742 -0.865549 0.500825 0 86 | -51808.5 -3497.38 3.27 -0.865549 0.500825 0 87 | -51817.4 -3512.79 3.27 0 0 0 88 | -51808.5 -3497.38 3.27 0.501294 0.865277 0 89 | -51808.5 -3497.38 15.742 0.501294 0.865277 0 90 | -51798.1 -3503.45 15.742 0.501294 0.865277 0 91 | -51798.1 -3503.45 3.27 0.501294 0.865277 0 92 | -51808.5 -3497.38 3.27 0 0 0 93 | -51798.1 -3503.45 15.742 0 0 1 94 | -51808.5 -3497.38 15.742 0 0 1 95 | -51817.4 -3512.79 15.742 0 0 1 96 | -51823.6 -3523.43 15.742 0 0 1 97 | -51802.4 -3535.73 15.742 0 0 1 98 | -51793.5 -3520.38 15.742 0 0 1 99 | -51794.5 -3519.79 15.742 0 0 1 100 | -51793.9 -3518.79 15.742 0 0 1 101 | -51795.8 -3517.71 15.742 0 0 1 102 | -51796.3 -3518.71 15.742 0 0 1 103 | -51801.2 -3515.91 15.742 0 0 1 104 | -51800.7 -3515.11 15.742 0 0 1 105 | -51803.8 -3513.34 15.742 0 0 1 106 | -51798.1 -3503.45 15.742 0 0 0 107 | 3 12 0 1 108 | 3 1 2 3 109 | 3 4 5 6 110 | 3 7 8 9 111 | 3 9 10 11 112 | 3 11 12 1 113 | 3 4 6 7 114 | 3 7 9 11 115 | 3 11 1 3 116 | 3 3 4 7 117 | 3 7 11 3 118 | 3 17 14 15 119 | 3 15 16 17 120 | 3 22 19 20 121 | 3 20 21 22 122 | 3 27 24 25 123 | 3 25 26 27 124 | 3 32 29 30 125 | 3 30 31 32 126 | 3 37 34 35 127 | 3 35 36 37 128 | 3 42 39 40 129 | 3 40 41 42 130 | 3 47 44 45 131 | 3 45 46 47 132 | 3 52 49 50 133 | 3 50 51 52 134 | 3 57 54 55 135 | 3 55 56 57 136 | 3 62 59 60 137 | 3 60 61 62 138 | 3 67 64 65 139 | 3 65 66 67 140 | 3 72 69 70 141 | 3 70 71 72 142 | 3 77 74 75 143 | 3 75 76 77 144 | 3 91 79 80 145 | 3 81 82 83 146 | 3 83 84 85 147 | 3 85 86 87 148 | 3 89 90 91 149 | 3 91 80 81 150 | 3 81 83 85 151 | 3 85 87 88 152 | 3 89 91 81 153 | 3 81 85 88 154 | 3 88 89 81 155 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod1_08.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 88 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 38 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51773.2 -3350.28 3.481 0 0 0 15 | -51773.1 -3350.33 3.481 0 0 -1 16 | -51763.2 -3356.12 3.481 0 0 0 17 | -51762.4 -3356.57 3.481 0 0 -1 18 | -51764 -3359.36 3.481 0 0 -1 19 | -51763.7 -3359.53 3.481 0 0 -1 20 | -51771.3 -3372.42 3.481 0 0 -1 21 | -51782.6 -3365.77 3.481 0 0 -1 22 | -51787.2 -3362.89 3.481 0 0 -1 23 | -51780.6 -3351.61 3.481 0 0 -1 24 | -51776.2 -3354.4 3.481 0 0 -1 25 | -51775.2 -3352.8 3.481 0 0 0 26 | -51774.8 -3353.06 3.481 0 0 -1 27 | -51773.2 -3350.28 3.481 0 0 0 28 | -51773.1 -3350.33 3.481 0.505396 0.862887 0 29 | -51773.1 -3350.33 10.811 0.505396 0.862887 0 30 | -51763.2 -3356.12 10.811 0.505396 0.862887 0 31 | -51763.2 -3356.12 3.481 0.505396 0.862887 0 32 | -51773.1 -3350.33 3.481 0 0 0 33 | -51763.2 -3356.12 3.481 0.505375 0.8629 0 34 | -51763.2 -3356.12 10.811 0.505375 0.8629 0 35 | -51762.4 -3356.57 10.811 0.505375 0.8629 0 36 | -51762.4 -3356.57 3.481 0.505375 0.8629 0 37 | -51763.2 -3356.12 3.481 0 0 0 38 | -51762.4 -3356.57 3.481 0.862843 -0.505472 0 39 | -51762.4 -3356.57 10.811 0.862843 -0.505472 0 40 | -51764 -3359.36 10.811 0.862843 -0.505472 0 41 | -51764 -3359.36 3.481 0.862843 -0.505472 0 42 | -51762.4 -3356.57 3.481 0 0 0 43 | -51764 -3359.36 3.481 0 0 0 44 | -51764 -3359.36 10.811 0.505697 0.862711 0 45 | -51763.7 -3359.53 10.811 0.505697 0.862711 0 46 | -51763.7 -3359.53 3.481 0.505697 0.862711 0 47 | -51764 -3359.36 3.481 0 0 0 48 | -51763.7 -3359.53 3.481 0.862825 -0.505503 0 49 | -51763.7 -3359.53 10.811 0.862825 -0.505503 0 50 | -51771.3 -3372.42 10.811 0.862825 -0.505503 0 51 | -51771.3 -3372.42 3.481 0.862825 -0.505503 0 52 | -51763.7 -3359.53 3.481 0 0 0 53 | -51771.3 -3372.42 3.481 -0.505269 -0.862962 0 54 | -51771.3 -3372.42 10.811 -0.505269 -0.862962 0 55 | -51782.6 -3365.77 10.811 -0.505269 -0.862962 0 56 | -51782.6 -3365.77 3.481 -0.505269 -0.862962 0 57 | -51771.3 -3372.42 3.481 0 0 0 58 | -51782.6 -3365.77 3.481 -0.53208 -0.846694 0 59 | -51782.6 -3365.77 10.811 -0.53208 -0.846694 0 60 | -51787.2 -3362.89 10.811 -0.53208 -0.846694 0 61 | -51787.2 -3362.89 3.481 -0.53208 -0.846694 0 62 | -51782.6 -3365.77 3.481 0 0 0 63 | -51787.2 -3362.89 3.481 -0.862783 0.505575 0 64 | -51787.2 -3362.89 10.811 -0.862783 0.505575 0 65 | -51780.6 -3351.61 10.811 -0.862783 0.505575 0 66 | -51780.6 -3351.61 3.481 -0.862783 0.505575 0 67 | -51787.2 -3362.89 3.481 0 0 0 68 | -51780.6 -3351.61 3.481 0.532507 0.846425 0 69 | -51780.6 -3351.61 10.811 0.532507 0.846425 0 70 | -51776.2 -3354.4 10.811 0.532507 0.846425 0 71 | -51776.2 -3354.4 3.481 0.532507 0.846425 0 72 | -51780.6 -3351.61 3.481 0 0 0 73 | -51776.2 -3354.4 3.481 -0.862783 0.505574 0 74 | -51776.2 -3354.4 10.811 -0.862783 0.505574 0 75 | -51775.2 -3352.8 10.811 -0.862783 0.505574 0 76 | -51775.2 -3352.8 3.481 -0.862783 0.505574 0 77 | -51776.2 -3354.4 3.481 0 0 0 78 | -51775.2 -3352.8 3.481 0 0 0 79 | -51775.2 -3352.8 10.811 0.505445 0.862859 0 80 | -51774.8 -3353.06 10.811 0.505445 0.862859 0 81 | -51774.8 -3353.06 3.481 0.505445 0.862859 0 82 | -51775.2 -3352.8 3.481 0 0 0 83 | -51774.8 -3353.06 3.481 -0.862828 0.505497 0 84 | -51774.8 -3353.06 10.811 -0.862828 0.505497 0 85 | -51773.2 -3350.28 10.811 -0.862828 0.505497 0 86 | -51773.2 -3350.28 3.481 -0.862828 0.505497 0 87 | -51774.8 -3353.06 3.481 0 0 0 88 | -51773.2 -3350.28 10.811 0 0 1 89 | -51774.8 -3353.06 10.811 0 0 0 90 | -51775.2 -3352.8 10.811 0 0 1 91 | -51776.2 -3354.4 10.811 0 0 1 92 | -51780.6 -3351.61 10.811 0 0 1 93 | -51787.2 -3362.89 10.811 0 0 1 94 | -51782.6 -3365.77 10.811 0 0 1 95 | -51771.3 -3372.42 10.811 0 0 1 96 | -51763.7 -3359.53 10.811 0 0 1 97 | -51764 -3359.36 10.811 0 0 1 98 | -51762.4 -3356.57 10.811 0 0 0 99 | -51763.2 -3356.12 10.811 0 0 1 100 | -51773.1 -3350.33 10.811 0 0 0 101 | -51773.2 -3350.28 10.811 0 0 0 102 | 3 4 5 6 103 | 3 7 8 9 104 | 3 4 6 7 105 | 3 7 9 10 106 | 3 4 7 10 107 | 3 12 1 3 108 | 3 3 4 10 109 | 3 10 12 3 110 | 3 17 14 15 111 | 3 15 16 17 112 | 3 22 19 20 113 | 3 20 21 22 114 | 3 27 24 25 115 | 3 25 26 27 116 | 3 31 32 30 117 | 3 37 34 35 118 | 3 35 36 37 119 | 3 42 39 40 120 | 3 40 41 42 121 | 3 47 44 45 122 | 3 45 46 47 123 | 3 52 49 50 124 | 3 50 51 52 125 | 3 57 54 55 126 | 3 55 56 57 127 | 3 62 59 60 128 | 3 60 61 62 129 | 3 66 67 65 130 | 3 72 69 70 131 | 3 70 71 72 132 | 3 77 78 79 133 | 3 80 81 82 134 | 3 77 79 80 135 | 3 80 82 83 136 | 3 77 80 83 137 | 3 85 74 76 138 | 3 76 77 83 139 | 3 83 85 76 140 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod1_09.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 30 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 12 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51847.1 -3450.92 3.918 0 0 -1 15 | -51842.6 -3443.12 3.918 0 0 -1 16 | -51835.9 -3447.02 3.918 0 0 -1 17 | -51840.4 -3454.81 3.918 0 0 -1 18 | -51847.1 -3450.92 3.918 0 0 0 19 | -51847.1 -3450.92 3.918 -0.866574 0.499048 0 20 | -51847.1 -3450.92 10.44 -0.866574 0.499048 0 21 | -51842.6 -3443.12 10.44 -0.866574 0.499048 0 22 | -51842.6 -3443.12 3.918 -0.866574 0.499048 0 23 | -51847.1 -3450.92 3.918 0 0 0 24 | -51842.6 -3443.12 3.918 0.498918 0.866649 0 25 | -51842.6 -3443.12 10.44 0.498918 0.866649 0 26 | -51835.9 -3447.02 10.44 0.498918 0.866649 0 27 | -51835.9 -3447.02 3.918 0.498918 0.866649 0 28 | -51842.6 -3443.12 3.918 0 0 0 29 | -51835.9 -3447.02 3.918 0.866574 -0.499048 0 30 | -51835.9 -3447.02 10.44 0.866574 -0.499048 0 31 | -51840.4 -3454.81 10.44 0.866574 -0.499048 0 32 | -51840.4 -3454.81 3.918 0.866574 -0.499048 0 33 | -51835.9 -3447.02 3.918 0 0 0 34 | -51840.4 -3454.81 3.918 -0.498918 -0.866649 0 35 | -51840.4 -3454.81 10.44 -0.498918 -0.866649 0 36 | -51847.1 -3450.92 10.44 -0.498918 -0.866649 0 37 | -51847.1 -3450.92 3.918 -0.498918 -0.866649 0 38 | -51840.4 -3454.81 3.918 0 0 0 39 | -51847.1 -3450.92 10.44 0 0 1 40 | -51840.4 -3454.81 10.44 0 0 1 41 | -51835.9 -3447.02 10.44 0 0 1 42 | -51842.6 -3443.12 10.44 0 0 1 43 | -51847.1 -3450.92 10.44 0 0 0 44 | 3 3 0 1 45 | 3 1 2 3 46 | 3 8 5 6 47 | 3 6 7 8 48 | 3 13 10 11 49 | 3 11 12 13 50 | 3 18 15 16 51 | 3 16 17 18 52 | 3 23 20 21 53 | 3 21 22 23 54 | 3 28 25 26 55 | 3 26 27 28 56 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod2_00.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 105 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 47 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51799.3 -3353.58 3.66411 -0.000108772 8.73494e-05 -1 15 | -51800.9 -3352.63 3.66437 -0.000109192 8.74705e-05 -1 16 | -51797.2 -3346.27 3.66452 -0.000109008 8.73121e-05 -1 17 | -51795.5 -3347.22 3.66426 -0.000108904 8.73266e-05 -1 18 | -51795.1 -3346.5 3.66427 -0.000108475 8.78049e-05 -1 19 | -51791.8 -3348.43 3.66375 -0.000108475 8.78052e-05 -1 20 | -51792.2 -3349.15 3.66373 -0.000108602 8.71675e-05 -1 21 | -51790.6 -3350.12 3.66347 -0.000108416 8.70186e-05 -1 22 | -51794.3 -3356.48 3.66332 -0.000108416 8.70186e-05 -1 23 | -51796 -3355.51 3.66358 -0.000108893 8.72162e-05 -1 24 | -51796.5 -3356.42 3.66356 -0.00010914 8.6674e-05 -1 25 | -51799.8 -3354.49 3.66409 -0.000108837 8.71959e-05 -1 26 | -51799.3 -3353.58 3.66411 0 0 0 27 | -51792.2 -3349.15 6.73173 0.000108475 -8.78056e-05 1 28 | -51791.8 -3348.43 6.73175 0.000108475 -8.78052e-05 1 29 | -51795.1 -3346.5 6.73227 0.000108475 -8.78049e-05 1 30 | -51795.5 -3347.22 6.73226 0.000108475 -8.78052e-05 1 31 | -51792.2 -3349.15 6.73173 0 0 0 32 | -51799.3 -3353.58 6.73211 0.000109137 -8.66837e-05 1 33 | -51799.8 -3354.49 6.73209 0.000109138 -8.66788e-05 1 34 | -51796.5 -3356.42 6.73156 0.00010914 -8.6674e-05 1 35 | -51796 -3355.51 6.73158 0.000109138 -8.66788e-05 1 36 | -51799.3 -3353.58 6.73211 0 0 0 37 | -51797.2 -3346.27 7.33752 -0.137249 0.0803918 0.987269 38 | -51800.9 -3352.63 7.33737 -0.137249 0.0803918 0.987269 39 | -51797.6 -3354.54 7.94685 -0.137249 0.0803918 0.987269 40 | -51797.2 -3346.27 7.33752 0 0 0 41 | -51793.9 -3348.17 7.947 -0.138062 0.080429 0.987152 42 | -51797.2 -3346.27 7.33752 -0.138062 0.080429 0.987152 43 | -51797.6 -3354.54 7.94685 -0.138062 0.080429 0.987152 44 | -51793.9 -3348.17 7.947 0 0 0 45 | -51797.6 -3354.54 7.94685 0.13568 -0.0790875 0.987591 46 | -51794.3 -3356.49 7.33632 0.13568 -0.0790875 0.987591 47 | -51793.9 -3348.17 7.947 0.13568 -0.0790875 0.987591 48 | -51797.6 -3354.54 7.94685 0 0 0 49 | -51794.3 -3356.49 7.33632 0.134889 -0.0790575 0.987702 50 | -51790.6 -3350.12 7.33647 0.134889 -0.0790575 0.987702 51 | -51793.9 -3348.17 7.947 0.134889 -0.0790575 0.987702 52 | -51794.3 -3356.49 7.33632 0 0 0 53 | -51792.2 -3349.15 3.66373 0.862749 -0.505632 -0.000137656 54 | -51791.8 -3348.43 3.66375 0.862749 -0.505632 -0.000137656 55 | -51791.8 -3348.43 6.73175 0.862749 -0.505632 -0.000137656 56 | -51792.2 -3349.15 6.73173 0.862749 -0.505632 -0.000137656 57 | -51792.2 -3349.15 3.66373 0 0 0 58 | -51791.8 -3348.43 6.73175 0.50556 0.862792 2.09709e-05 59 | -51791.8 -3348.43 3.66375 0.50556 0.862792 2.09718e-05 60 | -51795.1 -3346.5 3.66427 0.50556 0.862792 2.09727e-05 61 | -51795.1 -3346.5 6.73227 0.50556 0.862792 2.09718e-05 62 | -51791.8 -3348.43 6.73175 0 0 0 63 | -51795.5 -3347.22 6.73226 0 0 0 64 | -51795.1 -3346.5 6.73227 -0.862747 0.505637 0.000138253 65 | -51795.1 -3346.5 3.66427 -0.862747 0.505637 0.000138253 66 | -51795.5 -3347.22 3.66426 -0.862747 0.505637 0.000138253 67 | -51795.5 -3347.22 6.73226 0 0 0 68 | -51799.8 -3354.49 6.73209 -0.505283 -0.862954 -1.95626e-05 69 | -51799.8 -3354.49 3.66409 -0.505283 -0.862954 -1.95625e-05 70 | -51796.5 -3356.42 3.66356 -0.505283 -0.862954 -1.95624e-05 71 | -51796.5 -3356.42 6.73156 -0.505283 -0.862954 -1.95625e-05 72 | -51799.8 -3354.49 6.73209 0 0 0 73 | -51796 -3355.51 6.73158 0.862749 -0.505632 -0.000137658 74 | -51796.5 -3356.42 6.73156 0.862749 -0.505632 -0.000137658 75 | -51796.5 -3356.42 3.66356 0.862749 -0.505632 -0.000137659 76 | -51796 -3355.51 3.66358 0.862749 -0.505632 -0.000137658 77 | -51796 -3355.51 6.73158 0 0 0 78 | -51799.3 -3353.58 3.66411 -0.862747 0.505637 0.000138259 79 | -51799.8 -3354.49 3.66409 -0.862747 0.505637 0.000138259 80 | -51799.8 -3354.49 6.73209 -0.862747 0.505637 0.000138259 81 | -51799.3 -3353.58 6.73211 -0.862747 0.505637 0.000138259 82 | -51799.3 -3353.58 3.66411 0 0 0 83 | -51790.6 -3350.12 7.33647 0.505547 0.862799 2.08442e-05 84 | -51790.6 -3350.12 3.66347 0.505547 0.862799 2.08463e-05 85 | -51792.2 -3349.15 3.66373 0.505547 0.862799 2.08454e-05 86 | -51792.2 -3349.15 6.73173 0.505547 0.862799 2.0842e-05 87 | -51795.5 -3347.22 6.73226 0.505547 0.862799 2.08426e-05 88 | -51795.5 -3347.22 3.66426 0.505547 0.862799 2.08441e-05 89 | -51797.2 -3346.27 3.66452 0.505547 0.862799 2.08434e-05 90 | -51797.2 -3346.27 7.33752 0.505547 0.862799 2.08414e-05 91 | -51790.6 -3350.12 7.33647 0 0 0 92 | -51796 -3355.51 6.73158 -0.505291 -0.862949 -1.97261e-05 93 | -51796 -3355.51 3.66358 -0.505291 -0.862949 -1.97278e-05 94 | -51794.3 -3356.48 3.66332 -0.505291 -0.862949 -1.97278e-05 95 | -51794.3 -3356.49 7.33632 -0.505291 -0.862949 -1.9725e-05 96 | -51800.9 -3352.63 7.33737 -0.505291 -0.862949 -1.97265e-05 97 | -51800.9 -3352.63 3.66437 -0.505291 -0.862949 -1.97266e-05 98 | -51799.3 -3353.58 3.66411 -0.505291 -0.862949 -1.9727e-05 99 | -51799.3 -3353.58 6.73211 -0.505291 -0.862949 -1.97246e-05 100 | -51796 -3355.51 6.73158 0 0 0 101 | -51793.9 -3348.17 7.947 0.505546 0.862798 0.001899 102 | -51790.6 -3350.12 7.33647 0.505546 0.862798 0.001899 103 | -51797.2 -3346.27 7.33752 0.505546 0.862798 0.001899 104 | -51793.9 -3348.17 7.947 0 0 0 105 | -51797.6 -3354.54 7.94685 -0.505291 -0.862949 0.000477773 106 | -51800.9 -3352.63 7.33737 -0.505291 -0.862949 0.000477773 107 | -51794.3 -3356.49 7.33632 -0.505291 -0.862949 0.000477773 108 | -51797.6 -3354.54 7.94685 0 0 0 109 | -51794.3 -3356.49 7.33632 0.862805 -0.505537 -0.000137355 110 | -51794.3 -3356.48 3.66332 0.862805 -0.505537 -0.000137354 111 | -51790.6 -3350.12 3.66347 0.862805 -0.505537 -0.000137353 112 | -51790.6 -3350.12 7.33647 0.862805 -0.505537 -0.000137354 113 | -51794.3 -3356.49 7.33632 0 0 0 114 | -51797.2 -3346.27 7.33752 -0.862811 0.505526 0.000138549 115 | -51797.2 -3346.27 3.66452 -0.862811 0.505526 0.000138551 116 | -51800.9 -3352.63 3.66437 -0.862811 0.505526 0.000138553 117 | -51800.9 -3352.63 7.33737 -0.862811 0.505526 0.000138551 118 | -51797.2 -3346.27 7.33752 0 0 0 119 | 3 0 1 2 120 | 3 3 4 5 121 | 3 6 7 8 122 | 3 9 10 11 123 | 3 11 0 2 124 | 3 3 5 6 125 | 3 6 8 9 126 | 3 9 11 2 127 | 3 3 6 9 128 | 3 9 2 3 129 | 3 16 13 14 130 | 3 14 15 16 131 | 3 21 18 19 132 | 3 19 20 21 133 | 3 25 23 24 134 | 3 29 27 28 135 | 3 33 31 32 136 | 3 37 35 36 137 | 3 42 39 40 138 | 3 40 41 42 139 | 3 47 44 45 140 | 3 45 46 47 141 | 3 51 52 50 142 | 3 57 54 55 143 | 3 55 56 57 144 | 3 62 59 60 145 | 3 60 61 62 146 | 3 67 64 65 147 | 3 65 66 67 148 | 3 69 70 71 149 | 3 73 74 75 150 | 3 69 71 72 151 | 3 73 75 76 152 | 3 76 69 72 153 | 3 72 73 76 154 | 3 78 79 80 155 | 3 82 83 84 156 | 3 78 80 81 157 | 3 82 84 85 158 | 3 85 78 81 159 | 3 81 82 85 160 | 3 89 87 88 161 | 3 93 91 92 162 | 3 98 95 96 163 | 3 96 97 98 164 | 3 103 100 101 165 | 3 101 102 103 166 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod2_08.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 127 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 47 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51776.2 -3354.4 3.54055 -0.000105656 8.54563e-05 -1 15 | -51775.2 -3352.8 3.54059 -0.000104744 8.637e-05 -1 16 | -51763.7 -3359.53 3.53881 -0.000105096 8.55185e-05 -1 17 | -51771.3 -3372.42 3.5385 -0.00010544 8.54982e-05 -1 18 | -51782.6 -3365.77 3.54026 0 0 0 19 | -51782.6 -3365.78 3.54026 -8.29765e-05 0.000123554 -1 20 | -51787.2 -3362.89 3.541 -0.000105891 8.56921e-05 -1 21 | -51780.6 -3351.61 3.54127 -0.000106613 8.61308e-05 -1 22 | -51776.2 -3354.4 3.54055 0 0 0 23 | -51764 -3359.36 8.12285 0.000104532 -8.67061e-05 1 24 | -51762.4 -3356.57 8.12293 0.000104533 -8.67046e-05 1 25 | -51773.2 -3350.28 8.12459 0.000104533 -8.67031e-05 1 26 | -51774.8 -3353.06 8.12452 0.000104533 -8.67046e-05 1 27 | -51764 -3359.36 8.12285 0 0 0 28 | -51782.7 -3365.71 10.4743 -0.084524 0.049509 0.995191 29 | -51777.1 -3369.05 11.1234 -0.0845243 0.049509 0.995191 30 | -51775.2 -3352.8 10.4696 -0.0845265 0.0495091 0.99519 31 | -51776.2 -3354.4 10.4696 -0.0845265 0.0495091 0.99519 32 | -51776.1 -3354.43 10.4745 -0.084524 0.049509 0.995191 33 | -51782.7 -3365.71 10.4743 0 0 0 34 | -51775.2 -3352.8 10.4696 -0.0850643 0.0495673 0.995142 35 | -51777.1 -3369.05 11.1234 -0.0850643 0.0495673 0.995142 36 | -51769.5 -3356.15 11.1237 -0.0850643 0.0495673 0.995142 37 | -51775.2 -3352.8 10.4696 0 0 0 38 | -51771.3 -3372.42 10.4675 0.0845542 -0.0493179 0.995198 39 | -51769.5 -3356.15 11.1237 0.0845542 -0.0493179 0.995198 40 | -51777.1 -3369.05 11.1234 0.0845542 -0.0493179 0.995198 41 | -51771.3 -3372.42 10.4675 0 0 0 42 | -51771.3 -3372.42 10.4675 0.0840405 -0.049264 0.995244 43 | -51763.7 -3359.53 10.4678 0.0840405 -0.049264 0.995244 44 | -51769.5 -3356.15 11.1237 0.0840405 -0.049264 0.995244 45 | -51771.3 -3372.42 10.4675 0 0 0 46 | -51782.6 -3365.77 10.4743 0 0 0 47 | -51782.7 -3365.71 10.4743 0.00010657 -8.60773e-05 1 48 | -51776.1 -3354.43 10.4745 0.000106589 -8.61027e-05 1 49 | -51780.6 -3351.61 10.4753 0.000106609 -8.61282e-05 1 50 | -51787.2 -3362.89 10.475 0.000106589 -8.61027e-05 1 51 | -51782.6 -3365.78 10.4743 0 0 0 52 | -51782.6 -3365.77 10.4743 0 0 0 53 | -51774.8 -3353.06 8.12452 -0.862829 0.505496 0.000134969 54 | -51773.2 -3350.28 8.12459 -0.862829 0.505496 0.000134972 55 | -51773.2 -3350.28 7.77459 -0.862829 0.505496 0.000134974 56 | -51774.8 -3353.06 7.77452 -0.862829 0.505496 0.000134972 57 | -51774.8 -3353.06 8.12452 0 0 0 58 | -51764 -3359.36 7.77285 0.862833 -0.505489 -0.000132996 59 | -51763.2 -3357.88 7.77289 0.862833 -0.505489 -0.000133012 60 | -51762.4 -3356.57 7.77293 0.862833 -0.505489 -0.00013303 61 | -51762.4 -3356.57 8.12293 0.862833 -0.505489 -0.000133012 62 | -51764 -3359.36 8.12285 0 0 0 63 | -51764 -3359.36 7.77285 0 0 0 64 | -51762.4 -3356.57 7.77293 0 0 0 65 | -51763.2 -3356.12 7.77304 0.505398 0.862887 2.22405e-05 66 | -51773.1 -3350.33 7.77458 0 0 0 67 | -51773.2 -3350.28 7.77459 0 0 0 68 | -51773.2 -3350.28 8.12459 0.505398 0.862887 2.22405e-05 69 | -51762.4 -3356.57 8.12293 0.505398 0.862887 2.22405e-05 70 | -51762.4 -3356.57 7.77293 0 0 0 71 | -51763.7 -3359.53 10.4678 0.505449 0.862856 2.17256e-05 72 | -51763.7 -3359.53 8.12281 0.505449 0.862856 2.17228e-05 73 | -51764 -3359.36 8.12285 0.505449 0.862856 2.17205e-05 74 | -51774.8 -3353.06 8.12452 0 0 0 75 | -51774.8 -3353.06 7.77452 0.505449 0.862856 2.17169e-05 76 | -51773.1 -3354.07 7.77425 0.505449 0.862856 2.17185e-05 77 | -51764 -3359.36 7.77285 -0.50523 -0.862475 -0.029656 78 | -51763.7 -3359.53 7.77281 0.505449 0.862856 2.17216e-05 79 | -51763.7 -3359.53 3.53881 0.505449 0.862856 2.17245e-05 80 | -51775.2 -3352.8 3.54059 0.505449 0.862856 2.17222e-05 81 | -51775.2 -3352.8 10.4696 0.505449 0.862856 2.17204e-05 82 | -51763.7 -3359.53 10.4678 0 0 0 83 | -51769.5 -3356.15 11.1237 0.505448 0.862854 0.00214193 84 | -51763.7 -3359.53 10.4678 0.505448 0.862854 0.00214193 85 | -51775.2 -3352.8 10.4696 0.505448 0.862854 0.00214193 86 | -51769.5 -3356.15 11.1237 0 0 0 87 | -51771.3 -3372.42 3.5385 0.862809 -0.50553 -0.000132968 88 | -51763.7 -3359.53 3.53881 0.862809 -0.50553 -0.000132966 89 | -51763.7 -3359.53 7.77281 0.862809 -0.50553 -0.000132962 90 | -51763.7 -3359.53 8.12281 0.862809 -0.50553 -0.000132964 91 | -51763.7 -3359.53 10.4678 0.862809 -0.50553 -0.000132965 92 | -51771.3 -3372.42 10.4675 0.862809 -0.50553 -0.000132966 93 | -51771.3 -3372.42 3.5385 0 0 0 94 | -51776.2 -3354.4 10.4696 -0.862769 0.505598 0.000135057 95 | -51775.2 -3352.8 10.4696 -0.862769 0.505598 0.000135057 96 | -51775.2 -3352.8 3.54059 -0.862769 0.505598 0.000135057 97 | -51776.2 -3354.4 3.54055 -0.862769 0.505598 0.000135057 98 | -51776.2 -3354.4 10.4696 0 0 0 99 | -51782.6 -3365.77 3.54026 -0.505484 -0.862836 -1.93719e-05 100 | -51771.3 -3372.42 3.5385 -0.505484 -0.862836 -1.93741e-05 101 | -51771.3 -3372.42 10.4675 -0.505484 -0.862836 -1.93762e-05 102 | -51782.6 -3365.77 10.4693 -0.505484 -0.862836 -1.93741e-05 103 | -51782.6 -3365.77 3.54026 0 0 0 104 | -51764 -3359.36 8.12285 0.505449 0.862856 2.1715e-05 105 | -51763.7 -3359.53 8.12281 0.505449 0.862856 2.17128e-05 106 | -51763.7 -3359.53 7.77281 0.505449 0.862856 2.17106e-05 107 | -51764 -3359.36 7.77285 0.505449 0.862856 2.17128e-05 108 | -51764 -3359.36 8.12285 0 0 0 109 | -51780.6 -3351.61 10.4753 -0.862765 0.505605 0.000135882 110 | -51780.6 -3351.61 3.54127 -0.862765 0.505605 0.000135884 111 | -51787.2 -3362.89 3.541 -0.862765 0.505605 0.000135887 112 | -51787.2 -3362.89 10.475 -0.862765 0.505605 0.000135884 113 | -51780.6 -3351.61 10.4753 0 0 0 114 | -51787.2 -3362.89 3.541 -0.532582 -0.846379 -1.50782e-05 115 | -51782.6 -3365.78 3.54026 -0.532582 -0.846379 -1.50793e-05 116 | -51782.6 -3365.78 10.4743 -0.532582 -0.846379 -1.50805e-05 117 | -51787.2 -3362.89 10.475 -0.532582 -0.846379 -1.50793e-05 118 | -51787.2 -3362.89 3.541 0 0 0 119 | -51782.6 -3365.77 10.4743 0 0 0 120 | -51782.6 -3365.78 10.4743 0.862806 -0.505536 -0.000135035 121 | -51782.6 -3365.78 3.54026 0.862806 -0.505536 -0.000135035 122 | -51782.6 -3365.77 3.54026 0.862806 -0.505536 -0.000135035 123 | -51782.6 -3365.77 10.4693 0 0 0 124 | -51782.6 -3365.77 10.4743 0 0 0 125 | -51776.1 -3354.43 10.4745 0 0 0 126 | -51776.2 -3354.4 10.4696 0.532508 0.846425 1.71436e-05 127 | -51776.2 -3354.4 3.54055 0.532508 0.846425 1.7142e-05 128 | -51780.6 -3351.61 3.54127 0.532508 0.846425 1.71404e-05 129 | -51780.6 -3351.61 10.4753 0.532508 0.846425 1.7142e-05 130 | -51776.1 -3354.43 10.4745 0 0 0 131 | -51763.2 -3356.8 7.77299 0 0 0 132 | -51763.2 -3356.8 3.53899 -0.499621 -0.866244 -2.30347e-05 133 | -51763.1 -3356.85 3.53897 -0.499621 -0.866244 -2.30347e-05 134 | -51763.1 -3356.85 7.77297 -0.499621 -0.866244 -2.30347e-05 135 | -51763.2 -3356.8 7.77299 0 0 0 136 | -51763 -3356.7 7.77298 0 0 0 137 | -51763 -3356.7 3.53898 0.499621 0.866244 2.30614e-05 138 | -51763.1 -3356.65 3.53899 0.499621 0.866244 2.30614e-05 139 | -51763.1 -3356.65 7.77299 0.499621 0.866244 2.30614e-05 140 | -51763 -3356.7 7.77298 0 0 0 141 | 3 0 1 2 142 | 3 6 7 0 143 | 3 0 2 3 144 | 3 6 0 3 145 | 3 6 3 5 146 | 3 12 9 10 147 | 3 10 11 12 148 | 3 18 14 15 149 | 3 15 16 17 150 | 3 22 20 21 151 | 3 26 24 25 152 | 3 30 28 29 153 | 3 34 35 36 154 | 3 34 36 33 155 | 3 42 39 40 156 | 3 40 41 42 157 | 3 45 46 47 158 | 3 45 47 44 159 | 3 55 51 54 160 | 3 57 58 59 161 | 3 62 63 64 162 | 3 64 65 66 163 | 3 67 57 59 164 | 3 62 64 66 165 | 3 67 59 61 166 | 3 61 62 66 167 | 3 66 67 61 168 | 3 71 69 70 169 | 3 78 73 74 170 | 3 76 77 78 171 | 3 78 74 75 172 | 3 75 76 78 173 | 3 83 80 81 174 | 3 81 82 83 175 | 3 88 85 86 176 | 3 86 87 88 177 | 3 93 90 91 178 | 3 91 92 93 179 | 3 98 95 96 180 | 3 96 97 98 181 | 3 103 100 101 182 | 3 101 102 103 183 | 3 107 108 106 184 | 3 113 114 115 185 | 3 113 115 112 186 | 3 119 120 118 187 | 3 124 125 123 188 | -------------------------------------------------------------------------------- /tests/answer/53392633_bldg_6677_lod2_09.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Open3D 4 | element vertex 30 5 | property double x 6 | property double y 7 | property double z 8 | property double nx 9 | property double ny 10 | property double nz 11 | element face 12 12 | property list uchar uint vertex_indices 13 | end_header 14 | -51847.1 -3450.92 3.97781 -0.000116006 7.19563e-05 -1 15 | -51842.6 -3443.12 3.97785 -0.000116004 7.19568e-05 -1 16 | -51835.9 -3447.02 3.97678 -0.000116001 7.19572e-05 -1 17 | -51840.4 -3454.81 3.97674 -0.000116004 7.19568e-05 -1 18 | -51847.1 -3450.92 3.97781 0 0 0 19 | -51835.9 -3447.02 10.9088 0.000116003 -7.1957e-05 1 20 | -51842.6 -3443.12 10.9098 0.000116004 -7.19568e-05 1 21 | -51847.1 -3450.92 10.9098 0.000116004 -7.19567e-05 1 22 | -51840.4 -3454.81 10.9087 0.000116004 -7.19568e-05 1 23 | -51835.9 -3447.02 10.9088 0 0 0 24 | -51842.6 -3443.12 10.9098 -0.866549 0.499093 0.000137021 25 | -51842.6 -3443.12 3.97785 -0.866549 0.499093 0.000137022 26 | -51847.1 -3450.92 3.97781 -0.866549 0.499093 0.000137023 27 | -51847.1 -3450.92 10.9098 -0.866549 0.499093 0.000137022 28 | -51842.6 -3443.12 10.9098 0 0 0 29 | -51847.1 -3450.92 10.9098 -0.498917 -0.86665 -3.77834e-06 30 | -51847.1 -3450.92 3.97781 -0.498917 -0.86665 -3.78029e-06 31 | -51840.4 -3454.81 3.97674 -0.498917 -0.86665 -3.78224e-06 32 | -51840.4 -3454.81 10.9087 -0.498917 -0.86665 -3.78029e-06 33 | -51847.1 -3450.92 10.9098 0 0 0 34 | -51840.4 -3454.81 10.9087 0.866553 -0.499085 -0.000135797 35 | -51840.4 -3454.81 3.97674 0.866553 -0.499085 -0.000135795 36 | -51835.9 -3447.02 3.97678 0.866553 -0.499085 -0.000135794 37 | -51835.9 -3447.02 10.9088 0.866553 -0.499085 -0.000135795 38 | -51840.4 -3454.81 10.9087 0 0 0 39 | -51835.9 -3447.02 10.9088 0.498915 0.866651 5.19116e-06 40 | -51835.9 -3447.02 3.97678 0.498915 0.866651 5.1895e-06 41 | -51842.6 -3443.12 3.97785 0.498915 0.866651 5.18784e-06 42 | -51842.6 -3443.12 10.9098 0.498915 0.866651 5.1895e-06 43 | -51835.9 -3447.02 10.9088 0 0 0 44 | 3 3 0 1 45 | 3 1 2 3 46 | 3 8 5 6 47 | 3 6 7 8 48 | 3 13 10 11 49 | 3 11 12 13 50 | 3 18 15 16 51 | 3 16 17 18 52 | 3 23 20 21 53 | 3 21 22 23 54 | 3 28 25 26 55 | 3 26 27 28 56 | -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- 1 | import os 2 | import shutil 3 | from pathlib import Path 4 | 5 | import pytest 6 | 7 | OUTPUT = "output" 8 | 9 | 10 | @pytest.fixture(scope="session", autouse=True) 11 | def scope_session(): 12 | # OUTPUT ディレクトリ削除 13 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 14 | output_path_name = os.path.join(basedir, OUTPUT) 15 | if os.path.exists(output_path_name): 16 | shutil.rmtree(output_path_name) 17 | -------------------------------------------------------------------------------- /tests/data/53392633_bldg_6697_appearance/hnap0664.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/tests/data/53392633_bldg_6697_appearance/hnap0664.jpg -------------------------------------------------------------------------------- /tests/data/53392633_bldg_6697_appearance/hnap0665.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/tests/data/53392633_bldg_6697_appearance/hnap0665.jpg -------------------------------------------------------------------------------- /tests/data/53392633_bldg_6697_appearance/hnap0666.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/tests/data/53392633_bldg_6697_appearance/hnap0666.jpg -------------------------------------------------------------------------------- /tests/data/53392633_bldg_6697_appearance/hnap0668.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/tests/data/53392633_bldg_6697_appearance/hnap0668.jpg -------------------------------------------------------------------------------- /tests/data/53392633_bldg_6697_appearance/hnap0669.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/tests/data/53392633_bldg_6697_appearance/hnap0669.jpg -------------------------------------------------------------------------------- /tests/data/53392633_bldg_6697_appearance/hnap0670.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/tests/data/53392633_bldg_6697_appearance/hnap0670.jpg -------------------------------------------------------------------------------- /tests/data/53392633_bldg_6697_appearance/hnap0671.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/tests/data/53392633_bldg_6697_appearance/hnap0671.jpg -------------------------------------------------------------------------------- /tests/data/53392633_bldg_6697_appearance/hnap0672.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/tests/data/53392633_bldg_6697_appearance/hnap0672.jpg -------------------------------------------------------------------------------- /tests/data/53392633_bldg_6697_appearance/hnap0675.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/tests/data/53392633_bldg_6697_appearance/hnap0675.jpg -------------------------------------------------------------------------------- /tests/data/53392633_bldg_6697_appearance/hnap0697.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeoPythonJP/citygml-convert-tools/25d4fa3e0dd92778c3e797a73064e1f824afc29f/tests/data/53392633_bldg_6697_appearance/hnap0697.jpg -------------------------------------------------------------------------------- /tests/test_geojson.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf-8 3 | 4 | import filecmp 5 | import glob 6 | import os 7 | from pathlib import Path 8 | 9 | import pytest 10 | 11 | from py_plateau.city_gml import CityGml, Subset 12 | 13 | DATA = "data" 14 | OUTPUT = "output" 15 | ANSWER = "answer" 16 | 17 | 18 | def test_geojson_lod0(): 19 | """GeoJSON LOD0""" 20 | # ベースディレクトリ 21 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 22 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 23 | output_path_name = os.path.join(basedir, OUTPUT) 24 | 25 | # 実行 26 | obj_city_gml = CityGml(pathname, Subset.GEOJSON, "4326", lonlat=True) 27 | obj_city_gml.lod0() 28 | obj_city_gml.write_file(output_path_name) 29 | 30 | # ファイル比較 31 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), "53392633_bldg_4326_lod0.geojson") 32 | output_file = os.path.join(output_path_name, "53392633_bldg_4326_lod0.geojson") 33 | assert filecmp.cmp(output_answer_file, output_file) 34 | 35 | 36 | def test_geojson_separate_lod0(): 37 | """GeoJSON LOD0 (separate)""" 38 | # ベースディレクトリ 39 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 40 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 41 | output_path_name = os.path.join(basedir, OUTPUT) 42 | 43 | # 実行 44 | obj_city_gml = CityGml(pathname, Subset.GEOJSON, "4326", separate=True, lonlat=True) 45 | obj_city_gml.lod0() 46 | obj_city_gml.write_file(output_path_name) 47 | 48 | # 出力ファイル数 49 | target_path = os.path.join(basedir, OUTPUT, "53392633_bldg_4326_lod0_*.geojson") 50 | files = glob.glob(target_path, recursive=True) 51 | length = len(files) 52 | assert length == 10 53 | 54 | # ファイル比較 55 | for index in range(length): 56 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), f"53392633_bldg_4326_lod0_{index:02}.geojson") 57 | output_file = os.path.join(output_path_name, f"53392633_bldg_4326_lod0_{index:02}.geojson") 58 | assert filecmp.cmp(output_answer_file, output_file) 59 | 60 | 61 | def test_geojson_lod1(): 62 | """GeoJSON LOD1""" 63 | # ベースディレクトリ 64 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 65 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 66 | output_path_name = os.path.join(basedir, OUTPUT) 67 | 68 | # 実行 69 | obj_city_gml = CityGml(pathname, Subset.GEOJSON, "4326", lonlat=True) 70 | obj_city_gml.lod1() 71 | obj_city_gml.write_file(output_path_name) 72 | 73 | # ファイル比較 74 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), "53392633_bldg_4326_lod1.geojson") 75 | output_file = os.path.join(output_path_name, "53392633_bldg_4326_lod1.geojson") 76 | assert filecmp.cmp(output_answer_file, output_file) 77 | 78 | 79 | def test_geojson_separate_lod1(): 80 | """GeoJSON LOD1 (separate)""" 81 | # ベースディレクトリ 82 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 83 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 84 | output_path_name = os.path.join(basedir, OUTPUT) 85 | 86 | # 実行 87 | obj_city_gml = CityGml(pathname, Subset.GEOJSON, "4326", separate=True, lonlat=True) 88 | obj_city_gml.lod1() 89 | obj_city_gml.write_file(output_path_name) 90 | 91 | # 出力ファイル数 92 | target_path = os.path.join(basedir, OUTPUT, "53392633_bldg_4326_lod1_*.geojson") 93 | files = glob.glob(target_path, recursive=True) 94 | length = len(files) 95 | assert length == 10 96 | 97 | # ファイル比較 98 | for index in range(length): 99 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), f"53392633_bldg_4326_lod1_{index:02}.geojson") 100 | output_file = os.path.join(output_path_name, f"53392633_bldg_4326_lod1_{index:02}.geojson") 101 | assert filecmp.cmp(output_answer_file, output_file) 102 | 103 | 104 | def test_geojson_lod2(): 105 | """GeoJSON LOD2""" 106 | # ベースディレクトリ 107 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 108 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 109 | output_path_name = os.path.join(basedir, OUTPUT) 110 | 111 | # 実行 112 | obj_city_gml = CityGml(pathname, Subset.GEOJSON, "4326", lonlat=True) 113 | obj_city_gml.lod2() 114 | obj_city_gml.write_file(output_path_name) 115 | 116 | # ファイル比較 117 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), "53392633_bldg_4326_lod2.geojson") 118 | output_file = os.path.join(output_path_name, "53392633_bldg_4326_lod2.geojson") 119 | assert filecmp.cmp(output_answer_file, output_file) 120 | 121 | 122 | def test_geojson_separate_lod2(): 123 | """GeoJSON LOD2 (separate)""" 124 | # ベースディレクトリ 125 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 126 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 127 | output_path_name = os.path.join(basedir, OUTPUT) 128 | 129 | # 実行 130 | obj_city_gml = CityGml(pathname, Subset.GEOJSON, "4326", separate=True, lonlat=True) 131 | obj_city_gml.lod2() 132 | obj_city_gml.write_file(output_path_name) 133 | 134 | # 出力ファイル数 135 | target_path = os.path.join(basedir, OUTPUT, "53392633_bldg_4326_lod2_*.geojson") 136 | files = glob.glob(target_path, recursive=True) 137 | length = len(files) 138 | assert length == 10 139 | 140 | # ファイル比較 141 | for index in range(length): 142 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), f"53392633_bldg_4326_lod2_{index:02}.geojson") 143 | output_file = os.path.join(output_path_name, f"53392633_bldg_4326_lod2_{index:02}.geojson") 144 | assert filecmp.cmp(output_answer_file, output_file) 145 | -------------------------------------------------------------------------------- /tests/test_ply.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf-8 3 | 4 | import filecmp 5 | import glob 6 | import os 7 | from pathlib import Path 8 | 9 | import pytest 10 | 11 | from py_plateau.city_gml import CityGml, Subset 12 | 13 | DATA = "data" 14 | OUTPUT = "output" 15 | ANSWER = "answer" 16 | 17 | 18 | def test_ply_lod0(): 19 | """PLY LOD0""" 20 | # ベースディレクトリ 21 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 22 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 23 | output_path_name = os.path.join(basedir, OUTPUT) 24 | 25 | # 実行 26 | obj_city_gml = CityGml(pathname, Subset.PLY, "6677") 27 | obj_city_gml.lod0() 28 | obj_city_gml.write_file(output_path_name) 29 | 30 | # ファイル比較 31 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), f"53392633_bldg_6677_lod0.ply") 32 | output_file = os.path.join(output_path_name, f"53392633_bldg_6677_lod0.ply") 33 | assert filecmp.cmp(output_answer_file, output_file) 34 | 35 | 36 | def test_ply_separate_lod0(): 37 | """PLY LOD0 (separate)""" 38 | # ベースディレクトリ 39 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 40 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 41 | output_path_name = os.path.join(basedir, OUTPUT) 42 | 43 | # 実行 44 | obj_city_gml = CityGml(pathname, Subset.PLY, "6677", separate=True) 45 | obj_city_gml.lod0() 46 | obj_city_gml.write_file(output_path_name) 47 | 48 | # 出力ファイル数 49 | target_path = os.path.join(basedir, OUTPUT, "53392633_bldg_6677_lod0_*.ply") 50 | files = glob.glob(target_path, recursive=True) 51 | length = len(files) 52 | assert length == 10 53 | 54 | # ファイル比較 55 | for index in range(length): 56 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), f"53392633_bldg_6677_lod0_{index:02}.ply") 57 | output_file = os.path.join(output_path_name, f"53392633_bldg_6677_lod0_{index:02}.ply") 58 | assert filecmp.cmp(output_answer_file, output_file) 59 | 60 | 61 | def test_ply_lod1(): 62 | """PLY LOD1""" 63 | # ベースディレクトリ 64 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 65 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 66 | output_path_name = os.path.join(basedir, OUTPUT) 67 | 68 | # 実行 69 | obj_city_gml = CityGml(pathname, Subset.PLY, "6677") 70 | obj_city_gml.lod1() 71 | obj_city_gml.write_file(output_path_name) 72 | 73 | # ファイル比較 74 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), f"53392633_bldg_6677_lod1.ply") 75 | output_file = os.path.join(output_path_name, f"53392633_bldg_6677_lod1.ply") 76 | assert filecmp.cmp(output_answer_file, output_file) 77 | 78 | 79 | def test_ply_separate_lod1(): 80 | """PLY LOD1 (separate)""" 81 | # ベースディレクトリ 82 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 83 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 84 | output_path_name = os.path.join(basedir, OUTPUT) 85 | 86 | # 実行 87 | obj_city_gml = CityGml(pathname, Subset.PLY, "6677", separate=True) 88 | obj_city_gml.lod1() 89 | obj_city_gml.write_file(output_path_name) 90 | 91 | # 出力ファイル数 92 | target_path = os.path.join(basedir, OUTPUT, "53392633_bldg_6677_lod1_*.ply") 93 | files = glob.glob(target_path, recursive=True) 94 | length = len(files) 95 | assert length == 10 96 | 97 | # ファイル比較 98 | for index in range(length): 99 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), f"53392633_bldg_6677_lod1_{index:02}.ply") 100 | output_file = os.path.join(output_path_name, f"53392633_bldg_6677_lod1_{index:02}.ply") 101 | assert filecmp.cmp(output_answer_file, output_file) 102 | 103 | 104 | def test_ply_lod2(): 105 | """PLY LOD2""" 106 | # ベースディレクトリ 107 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 108 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 109 | output_path_name = os.path.join(basedir, OUTPUT) 110 | 111 | # 実行 112 | obj_city_gml = CityGml(pathname, Subset.PLY, "6677") 113 | obj_city_gml.lod2() 114 | obj_city_gml.write_file(output_path_name) 115 | 116 | # ファイル比較 117 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), f"53392633_bldg_6677_lod2.ply") 118 | output_file = os.path.join(output_path_name, f"53392633_bldg_6677_lod2.ply") 119 | assert filecmp.cmp(output_answer_file, output_file) 120 | 121 | 122 | def test_ply_separate_lod2(): 123 | """PLY LOD2 (separate)""" 124 | # ベースディレクトリ 125 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 126 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 127 | output_path_name = os.path.join(basedir, OUTPUT) 128 | 129 | # 実行 130 | obj_city_gml = CityGml(pathname, Subset.PLY, "6677", separate=True) 131 | obj_city_gml.lod2() 132 | obj_city_gml.write_file(output_path_name) 133 | 134 | # 出力ファイル数 135 | target_path = os.path.join(basedir, OUTPUT, "53392633_bldg_6677_lod2_*.ply") 136 | files = glob.glob(target_path, recursive=True) 137 | length = len(files) 138 | assert length == 10 139 | 140 | # ファイル比較 141 | for index in range(length): 142 | output_answer_file = os.path.join(os.path.join(basedir, ANSWER), f"53392633_bldg_6677_lod2_{index:02}.ply") 143 | output_file = os.path.join(output_path_name, f"53392633_bldg_6677_lod2_{index:02}.ply") 144 | assert filecmp.cmp(output_answer_file, output_file) 145 | -------------------------------------------------------------------------------- /tests/test_poly_and_poly_id.py: -------------------------------------------------------------------------------- 1 | import os 2 | from pathlib import Path 3 | 4 | from py_plateau.city_gml import CityGml, Subset 5 | 6 | DATA = "data" 7 | OUTPUT = "output" 8 | ANSWER = "answer" 9 | 10 | 11 | def _make_city_gml_instance(): 12 | """Make CityGml instance""" 13 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 14 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 15 | obj_city_gml = CityGml(pathname, Subset.PLY, "6677") 16 | return obj_city_gml 17 | 18 | 19 | def test_compare_polygon_and_id_from_first_element(): 20 | """Whether polygon/id pairs are correct or not""" 21 | # CityGmlのインスタンスを生成 22 | obj_city_gml = _make_city_gml_instance() 23 | obj_city_gml.lod2() 24 | 25 | # 最初の要素を取得 26 | buildings = obj_city_gml.obj_buildings 27 | target = buildings[0] 28 | first_poly = target.polygons[0] 29 | first_poly_id = first_poly.poly_id 30 | first_vertices = first_poly.vertices.text 31 | 32 | test_vertices = "35.533096948566886 139.7963519674318 3.66410811 35.53309215110142 139.79634196185296 3.66408749 35.53312183726169 139.79632067879015 3.6635608 35.53312663453339 139.79633068408438 3.66358141 35.53314158466162 139.79631996558618 3.66331703 35.533175221159944 139.7963901364649 3.66346657 35.533160279972336 139.79640085582636 3.66373085 35.53316408451471 139.7964087906811 3.66374829 35.53313440429897 139.79643008508884 3.66427499 35.533130599460456 139.79642214971136 3.66425755 35.533115953337905 139.79643265736863 3.6645183 35.5330823072676 139.7963624645014 3.66436872 35.533096948566886 139.7963519674318 3.66410811" 33 | 34 | # ポリゴンのidが想定されるものかどうか比較 35 | assert first_poly_id == "poly_HNAP0664_b_0" 36 | # verticesが一致するか比較 37 | assert first_vertices == test_vertices 38 | -------------------------------------------------------------------------------- /tests/test_textures.py: -------------------------------------------------------------------------------- 1 | import os 2 | from pathlib import Path 3 | 4 | import numpy as np 5 | 6 | from py_plateau.city_gml import CityGml, Subset 7 | 8 | DATA = "data" 9 | OUTPUT = "output" 10 | ANSWER = "answer" 11 | 12 | 13 | def test_get_textures(): 14 | # ベースディレクトリ 15 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 16 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 17 | 18 | # 実行 19 | obj_city_gml = CityGml(pathname, Subset.PLY, "6677") 20 | textures = obj_city_gml.get_textures() 21 | 22 | # テクスチャ画像の数を確認 23 | num_of_images = len(textures) 24 | assert num_of_images == 10 25 | 26 | # 先頭の要素の画像のファイルパス・id・UV座標を確認 27 | first_image_uri = "53392633_bldg_6697_appearance/hnap0668.jpg" 28 | first_poly_id = "poly_HNAP0668_p4761_3" 29 | first_uv_coords = [ 30 | [0.3808012, 0.3736107], 31 | [0.3808012, 0.5503924], 32 | [0.2627451, 0.5503924], 33 | [0.2627451, 0.3736107], 34 | [0.3808012, 0.3736107], 35 | ] 36 | 37 | first_texture = textures[0] 38 | 39 | assert first_texture.image_uri == first_image_uri 40 | assert list(first_texture.uv_coords.keys())[0] == first_poly_id 41 | assert np.allclose(first_texture.uv_coords[first_poly_id], first_uv_coords) 42 | 43 | # 最後の要素の画像のファイルパス・id・UV座標を確認 44 | last_image_uri = "53392633_bldg_6697_appearance/hnap0697.jpg" 45 | last_poly_id = "poly_HNAP0697_p4760_1" 46 | last_uv_coords = [ 47 | [0.7234043, 0.6249189], 48 | [0.9878542, 0.6249189], 49 | [0.9878542, 1], 50 | [0.7234043, 1], 51 | [0.7234043, 0.6249189], 52 | ] 53 | 54 | last_texture = textures[-1] 55 | 56 | assert last_texture.image_uri == last_image_uri 57 | assert list(last_texture.uv_coords.keys())[-1] == last_poly_id 58 | assert np.allclose(last_texture.uv_coords[last_poly_id], last_uv_coords) 59 | 60 | 61 | def test_search_uv_coords(): 62 | # ベースディレクトリ 63 | basedir = Path(os.path.dirname(os.path.abspath(__file__))) 64 | pathname = os.path.join(basedir, DATA, "53392633_bldg_6697_2_op.gml") 65 | 66 | # 実行 67 | obj_city_gml = CityGml(pathname, Subset.PLY, "6677") 68 | textures = obj_city_gml.get_textures() 69 | 70 | # テクスチャ画像の数を確認 71 | num_of_images = len(textures) 72 | assert num_of_images == 10 73 | 74 | # 先頭の要素の画像のファイルパス・id・UV座標を確認 75 | first_image_uri = "53392633_bldg_6697_appearance/hnap0668.jpg" 76 | first_poly_id = "poly_HNAP0668_p4761_3" 77 | 78 | first_texture = textures[0] 79 | 80 | # 存在するポリゴンIDを指定 81 | assert first_texture.image_uri == first_image_uri 82 | assert first_texture.search_uv_coords(first_poly_id) is not None 83 | 84 | # 存在しないidを指定した場合 85 | assert first_texture.search_uv_coords("test") is None 86 | -------------------------------------------------------------------------------- /tests/test_transform_coordinate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf-8 3 | 4 | import pytest 5 | from pytest import approx 6 | 7 | from py_plateau.building import Building 8 | 9 | line_HNAP0664_b_0 = [ 10 | [35.533096948566886, 139.7963519674318, 3.66410811], 11 | [35.53309215110142, 139.79634196185296, 3.66408749], 12 | [35.53312183726169, 139.79632067879015, 3.6635608], 13 | [35.53312663453339, 139.79633068408438, 3.66358141], 14 | [35.53314158466162, 139.79631996558618, 3.66331703], 15 | [35.533175221159944, 139.7963901364649, 3.66346657], 16 | [35.533160279972336, 139.79640085582636, 3.66373085], 17 | [35.53316408451471, 139.7964087906811, 3.66374829], 18 | [35.53313440429897, 139.79643008508884, 3.66427499], 19 | [35.533130599460456, 139.79642214971136, 3.66425755], 20 | [35.533115953337905, 139.79643265736863, 3.6645183], 21 | [35.5330823072676, 139.7963624645014, 3.66436872], 22 | [35.533096948566886, 139.7963519674318, 3.66410811], 23 | ] 24 | 25 | line_HNAP0664_b_0_a = [ 26 | [-51799.26961284785, -3353.5845957979486, 3.66410811], 27 | [-51799.801499817906, -3354.4921323657695, 3.66408749], 28 | [-51796.50741412865, -3356.420910066282, 3.6635608], 29 | [-51795.97554883826, -3355.5133995360065, 3.66358141], 30 | [-51794.316627467706, -3356.484763087701, 3.66331703], 31 | [-51790.58740524861, -3350.1200557466364, 3.66346657], 32 | [-51792.24533409834, -3349.148612766896, 3.66373085], 33 | [-51791.82353042733, -3348.428898056156, 3.66374829], 34 | [-51795.11695531808, -3346.499089385544, 3.66427499], 35 | [-51795.538791977975, -3347.218851687374, 3.66425755], 36 | [-51797.1639790087, -3346.2665933643902, 3.6645183], 37 | [-51800.89426509801, -3352.6332981565643, 3.66436872], 38 | [-51799.26961284785, -3353.5845957979486, 3.66410811], 39 | ] 40 | 41 | 42 | def test_transform_coordinate(): 43 | from_srid = "6697" 44 | to_srid = "6677" 45 | 46 | obj_building = Building(from_srid, to_srid) 47 | 48 | for index, row in enumerate(line_HNAP0664_b_0): 49 | latitude = row[0] 50 | longitude = row[1] 51 | height = row[2] 52 | xx, yy, zz = obj_building.transform_coordinate(latitude, longitude, height) 53 | 54 | xx_a = line_HNAP0664_b_0_a[index][0] 55 | yy_a = line_HNAP0664_b_0_a[index][1] 56 | zz_a = line_HNAP0664_b_0_a[index][2] 57 | 58 | assert xx == approx(xx_a), f"xx={xx}, xx_a={xx_a}" 59 | assert yy == approx(yy_a), f"yy={yy}, zz_a={yy_a}" 60 | assert zz == approx(zz_a), f"zz={zz}, zz_a={zz_a}" 61 | --------------------------------------------------------------------------------