ãã®è¨äºã¯FOSS4G Advent Calendar 2016ã®20æ¥ç®ã®è¨äºã§ãã
ä»å¹´ã®FOSS4G Tokyoã®ç¹å¥ã»ãã·ã§ã³ã¯「アーカイブ×FOSS4G」ã¨ãããã¼ãã§ã大å¤åºæ¿ãåãã¾ããã
ã¨ãããã¨ã§ç§ãããã«ã®ã£ãã£ã¦ããã£ã±ãå±±ãFOSS4Gã§ã¢ã¼ã«ã¤ãããæ¹æ³ãç´¹ä»ãããã¨æãã¾ãã
ä»å°å¸ä¸ç©ºãããã£ã±ãå±±ãæãï¼å·¨ä¹³åå¦çæ¸ã¿ï¼ |
1. ãã£ã±ãå±±ãä½ã
å ¬åã®ç å ´ã«è¡ãããã£ã±ãå±±ãä½ãã¾ãããã£ããä¸äººã§ç å ´ã§éãã§ããã¨éå ±ããã¾ãã®ã§ãèªåã®åã親æã®åã¨ä½æ¥ãã¦ãã ããã
ä½æ¥ã®æ§å | ãã£ã±ãå±± |
2. åçãæ®ã
ãã£ã±ãå±±ãåºæ¥ä¸ãã£ãããUAV(ドローン)を用いた公共測量マニュアル(案)ã«å¾ã£ã¦åçãæ®ãã¾ããããã¼ã³ã¯ããã¾ããã®ã§ãã¹ãããæã«ç å ´ã®å¨ããããã£ã¨åã£ã¦ã·ã£ãã¿ã¼ãæ¼ãã¦ãã ããã注æç¹ã¯ãåçã«ä½ç½®æ å ±ãè¨é²ãããããè¨å®ãã¦ãããã¨ã7å²ä»¥ä¸ãªã¼ãã¼ã©ããããã¦æ®å½±ãããã¨ãå ¬åã«ããããããéã«ä¸å¯©ããããªãããã«ãããã¨ã§ãã
æ®å½±ã®æ§åãèªåã®å½±ãåããªãããã«ã | æ®å½±ãããã£ã±ãå±±ï¼80æï¼ |
3. OpenDroneMapã§3Dã¢ãã«ã¨ãªã«ã½ç»åãä½ã
åçãæºåã§ããããOpenDroneMapã§3Dã¢ãã«ã¨ãªã«ã½ç»åãä½æãã¾ããOpenDroneMapã¯ãããã¼ã³ã§æ®å½±ãã空ä¸åçããå°å½¢ã®3Dã¢ãã«ã¨ãªã«ã½ç»åãä½ããã¨ãã§ãããªã¼ãã³ã½ã¼ã¹ã®ã½ããã¦ã§ã¢ã§ãã*1ããã¼ã³ã ãã§ãªããã¹ããã§æ®å½±ããåçããã§ãä½æã§ãã¾ãã
3-1. Bash on Windowsã®å°å ¥
OpenDroneMapãWindowsã§ä½¿ãããã«Bash on Windowsãå°å
¥ãã¾ããBash on Windowsã¨ã¯ãWindowsã§åä½ããBashã·ã§ã«ã§ããããã«ãã£ã¦OpenDroneMapã®ãããªLinuxç¨ã®ã½ãããWindowsã§ã³ã³ãã¤ã«ï¼å®è¡ã§ããããã«ãªãã¾ããå°å
¥æ¹æ³ã¯ããã§ã¯èª¬æããªãã®ã§ãé©å½ã«ã°ã°ã£ã¦ãã ããã
3-2. OpenDroneMapã®ã³ã³ãã¤ã«
Bash on Windowsãèµ·åãã¦ã以ä¸ã®ã³ãã³ãã§GitHubããOpenDroneMapã®ã½ã¼ã¹ããã¦ã³ãã¼ããã¾ãã
git clone https://github.com/OpenDroneMap/OpenDroneMap.git
~/.bashrcã«ãã¹ã追å ãã¦ãsourceã³ãã³ãã§è¨å®ãèªã¿ç´ãã¾ãã/your/path/ã®é¨åã¯ã½ã¼ã¹ã®ããå ´æã«ç½®ãæãã¦ãã ããã
export PYTHONPATH=$PYTHONPATH:/your/path/OpenDroneMap/SuperBuild/install/lib/python2.7/dist-packages export PYTHONPATH=$PYTHONPATH:/your/path/OpenDroneMap/SuperBuild/src/opensfm export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/path/OpenDroneMap/SuperBuild/install/lib
source ~/.bashrc
OpenDroneMapã®ãã©ã«ãã«ç§»åãã¦ã³ã³ãã¤ã«ãã¾ããä¾åããã©ã¤ãã©ãªãªã©è«¸ã ã¤ã³ã¹ãã¼ã«ãããã®ã§çµæ§æéããããã¾ãã(1æéã»ã©)
cd OpenDroneMap bash configure.sh
3-3. GCP(ã°ã©ã¦ã³ãã³ã³ããã¼ã«ãã¤ã³ã)ã®ä½æ
OpenDroneMapãå®è¡ããåã«ãåçã®ä½ç½®ããããããããã®GCPãä½æãã¦ããã¾ããã¹ããã®åçã«ã¯ä½ç½®æ å ±ãè¨é²ããã¦ããã®ã§GCPããªãã¦ããªã«ã½ç»åã¯åºæ¥ã¾ããã精度ããããããã«ä½æãã¾ããGCPãã¡ã¤ã«ã¯ãgcp_list.txtã¨ããååã§ä»¥ä¸ã®ãã©ã¼ãããã§ä½æãã¾ãã
coordinate system description x1 y1 z1 pixelx1 pixely1 imagename1 x2 y2 z2 pixelx2 pixely2 imagename2 x3 y3 z3 pixelx3 pixely3 imagename3
coordinate system descriptionã¯ä½ç½®ã®æå½±æ³ãx1,y1,z1ã¯ä½ç½®åº§æ¨ãpixelx1,pixely1ã¯åçã®ãã¯ã»ã«åº§æ¨ãimagenameã¯åçãã¡ã¤ã«åã§ãã1æã®åçã«å¯¾ãã¦æä½5ç¹ãããã¯ããã¨è¯ãããã§ããå ·ä½çã«ã¯ããããªæãã§ãã
WGS84 UTM 54N 494399.2 4232697.1 5 333 1590 IMG_6785.jpg 494399.2 4232697.1 5 758 1698 IMG_6786.jpg 494399.2 4232697.1 5 877 1942 IMG_6787.jpg
æåã§ãã®ãã¡ã¤ã«ãä½ããã¨ããã¨çµæ§æéã§ãããæ¯æ´ãã¼ã«ããããããªã®ã§ãå©ç¨ãã¦ã¿ãã¨è¯ãããããã¾ããã*2
3-4. OpenDroneMapãå®è¡ãã
ããã°ã©ã ãå®è¡ããæºåã¨ãã¦ãOpenDroneMapãã©ã«ãã®ç´ä¸ã«oppaiyamaãã©ã«ããä½æãã¾ããããã«oppaiyamaãã©ã«ãã®ä¸ã«imagesãã©ã«ããä½ã£ã¦ãããã«ã¹ããã§æ®å½±ãããã£ã±ãå±±ã®ç»åãå
¥ãã¦ããã¾ããgcp_list.txtã¯oppaiyamaãã©ã«ãã®ç´ä¸ã«å
¥ãã¾ãã
ãã®å¾ã以ä¸ã®ã³ãã³ãã§ããã°ã©ã ãå®è¡ãã¾ããåçã®ææ°ãè¨å®ã«ãããã¾ããã80æã§30åãããã¯ãããã®ã§ãæ°é·ã«å¾
ã¡ã¾ãã
sh run.sh --project-path oppaiyama --odm_georeferencing-useGcp --odm_orthophoto-resolution 1000
å®è¡ãã©ã¡ã¼ã¿ã¯ãè²ã
ããã¾ãããä»åã¯ãgcpã使ç¨ãã¦ããªã«ã½ç»åã®è§£å度ã1000pixcel/mã¨è¨å®ãã¦ããã¾ãã
ãã©ã¡ã¼ã¿ã®è©³ç´°ã¯ããããåç
§ãã¦ãã ãããhttps://github.com/OpenDroneMap/OpenDroneMap/wiki/Run-Time-Parameters
3-5. ãã¼ã¿ã確èªãã
ããã°ã©ã ãçµäºããããoppaiyamaãã©ã«ãã®ä¸ã«3Dã¢ãã«ã¨ãªã«ã½ç»åãåºæ¥ä¸ãã£ã¦ãã¾ãã3Dã¢ãã«ã¯ãodm_texturingãã©ã«ãã®ä¸ã«ãodm_textured_model_geo.objãã¨ããååã§å ¥ã£ã¦ããã®ã§ãMeshLabãªã©ã§èªã¿è¾¼ãã§ç¢ºèªãã¦ã¿ã¾ããããã¾ãããªã«ã½ç»åã¯ãodm_orthophotoãã©ã«ãã®ä¸ã«ãodm_orthophoto.tifãã¨ããååã§å ¥ã£ã¦ããã®ã§ãQGISã«èªã¿è¾¼ãã§ç¢ºèªãã¦ã¿ã¾ãããã
MeshLabã§3Dã¢ãã«ã表示 | QGISã§ãªã«ã½ç»åã表示 |
4. OpenDroneMapã®ãã¼ã¿ãCesiumç¨ã«å¤æãã
OpenDroneMapã§ä½æããå°å½¢ãã¼ã¿ãCesiumã§è¡¨ç¤ºãããããã¼ã¿ãå¤æãã¾ããCesiumã¨ã¯ãå°å³ããã©ã¦ã¶ã§3D表示ã§ãããªã¼ãã³ã½ã¼ã¹ã®javascriptã©ã¤ãã©ãªã§ããCesiumã®ä½¿ãæ¹ã¯ããã®ãã¨èª¬æãã¾ãããã¨ããããèªã¿è¾¼ãããã®ãã¼ã¿ãä½æãã¦ããã¾ãã
Cesiumã«OpenDroneMapã®ãã¼ã¿ãèªã¿è¾¼ãæ¹æ³ã¯äºéãããã¾ããä¸ã¤ã¯ãobjãã¡ã¤ã«ãgltfå½¢å¼ã®3Dã¢ãã«ã«å¤æãã¦èªã¿è¾¼ãæ¹æ³ã§ããããä¸ã¤ã¯ãlasãã¡ã¤ã«ï¼ç¹ç¾¤ãã¼ã¿ï¼ãCesiumç¨ã®æ¨é«ã¿ã¤ã«ã«å¤æãã¦èªã¿è¾¼ãæ¹æ³ã§ãã
4-1.ï¼æ¹æ³ãã®1ï¼ objãã¡ã¤ã«ãgltfå½¢å¼ã®3Dã¢ãã«ã«å¤æãã
ãã£ã±ãå±±ã3Dã¢ãã«ã¨ãã¦èªã¿è¾¼ãããã«ãã¾ãmeshlabã§objãã¡ã¤ã«ãcollada(dae)å½¢å¼ã«å¤æãã¾ãã
odm_texturingãã©ã«ãã®ä¸ã®odm_textured_model_geo.objãMeshLabã«èªã¿ããã§collada(dae)å½¢å¼ã§ã¨ã¯ã¹ãã¼ããã¾ãããã®éãMeshLabã§ãããªãé¨åãæ¶ããªã©ç·¨éãã¦ããã¨è¯ãããããã¾ããããã¡ã¤ã«åã¯ãoppaiyama.daeãã¨ãã¦ããã¾ãã
次ã«ãcollada(dae)å½¢å¼ãgltfå½¢å¼ã«å¤æããããcollada2gltfã¨ããã½ãããGitHubãããã¦ã³ãã¼ããã¦ã³ã³ãã¤ã«ãã¾ãã*3
git clone https://github.com/KhronosGroup/COLLADA2GLTF.git cd COLLADA2GLTF cmake . make sudo make install
以ä¸ã®ã³ãã³ãã§ãoppaiyama.daeãoppaiyama.gltfã«å¤æãã¾ãã-eã¯ãã¯ã¹ãã£çãå梱ãããªãã·ã§ã³ã§ãã
collada2gltf -e -f oppaiyama.dae -o oppaiyama.gltf
4-2.ï¼æ¹æ³ãã®2ï¼lasãã¡ã¤ã«ãæ¨é«ã¿ã¤ã«ã«å¤æãã
ãã£ã±ãå±±ãæ¨é«ã¿ã¤ã«ã¨ãã¦èªã¿è¾¼ãããã«ãLastoolsã§lasãã¡ã¤ã«ãDEMãã¼ã¿ã«å¤æãã¾ããã¾ããLastoolsã以ä¸ãããã¦ã³ãã¼ãã¾ãã
http://www.cs.unc.edu/~isenburg/lastools/
Lastoolsã®ä¸é¨ã®ãã¼ã«ã¯æ®å¿µãªããããªã¼ã¦ã§ã¢ã§ã¯ããã¾ãããä»å使ç¨ããlas2dem.exeãåç¨ä½¿ç¨ã ã¨ææã«ãªãã¾ãããå人çã«ä½¿ç¨ããåã«ã¯ãµã¤ãºå¶éã¯ããã¾ãã使ç¨ã§ããããã§ãã*4ã½ããã解åããã以ä¸ã®ã³ãã³ãã§å¤æãã¾ãããã ããlas2dem.exeã¯Windowsç¨ã®å®è¡ãã¡ã¤ã«ãªã®ã§ãBash on Windowsã§ã¯ãªããå¥éãPowerShellãèµ·åãã¦å®è¡ãã¾ããå¤æããlasãã¡ã¤ã«ã¯ãodm_georeferencingãã©ã«ãã«å
¥ã£ã¦ããodm_georeferenced_model.ply.lasã使ç¨ãã¾ãã
cd Lastools\bin las2dem.exe -i odm_georeferenced_model.ply.las -o dem.tif -elevation -step 0.001 -utm 54N -nodata 0
ãªãã·ã§ã³ã®è¨å®ã¯ãé«ãæ¹å0.001mã®è§£å度ã§ãUTM54ã®æå½±æ³ãnodataã¯0ã®æ¨é«ãã¼ã¿ãdem.tifã§åºåããã¨ãªã£ã¦ãã¾ãã
次ã«ãDEMãã¼ã¿ãCesiumç¨ã®æ¨é«ã¿ã¤ã«(heightmap-1.0 terrain format)*5ã«å¤æãããããCesium Terrain Builderãã³ã³ãã¤ã«ãã¾ããCesium Terrain Builderã®ã³ã³ãã¤ã«ã«ã¯ãgdal2.0.0以ä¸ãå¿ è¦ãªã®ã§ã以ä¸ã®ã³ãã³ãã§gdalãã¢ãããã¼ããã¦ããã¾ãã(Bash On Windowsã§ã®ä½æ¥ã«æ»ã£ã¦ããã®ã§ééããªãããã«)
sudo add-apt-repository ppa:ubuntugis/ppa && sudo apt-get update sudo apt-get install libgeos-c1v5 gdal-bin
gdalãã¢ãããã¼ãã§ããããCesium Terrain Builderã®ã½ã¼ã¹ããã¦ã³ãã¼ããã¦ã³ã³ãã¤ã«ãã¾ãã
git clone https://github.com/geo-data/cesium-terrain-builder.git cd cesium-terrain-builder mkdir build && cd build && cmake .. sudo make install
ã½ããã¯æºåã§ãã¾ããããä»åã®ãã¼ã¿ã¯å¯¾è±¡ç¯å²ãçããããããã®ã¾ã¾ã§ã¯ä¸æãå¤æã§ãã¾ããããã®ãããCesium Terrin Builderã§å¤æããåã«gdal_translateã§å·¨ä¹³åå¦çããã¦ããã¾ãã
gdal_translateã®-a_ullrãªãã·ã§ã³ã§ç¯å²ã1000åã«æ¡å¤§ãã-scaleãªãã·ã§ã³ã§é«ãã1000åã«ãã¦æä½æ¨é«ã調æ´ãã¦ããã¾ããã¤ãã§ã«-projwinãªãã·ã§ã³ã§å¿
è¦ãªç¯å²ã«ã¯ãªãããã¾ãã(nodataãç¯å²ã«å«ãã¨å¤æçµæããããããªãï¼ã®ã§åãåã)
gdal_translate -projwin 494398.737 4232696.642 494400.030 4232694.956 -scale 4.740 5.160 -80 340 -a_nodata -9999 -a_ullr 494398.737 4232696.642 495893.03 4231008.956 dem.tif dem_scale.tif
Cesium Terrain Builderã®ctb-tileã³ãã³ãã§ãDEMãã¼ã¿ãæ¨é«ã¿ã¤ã«ã«å¤æãã¾ããæ¨é«ã¿ã¤ã«ã¯terrainãã©ã«ãã«ä¿åãã¾ãã
mkdir terrain ctb-tile -o terrain dem_scale.tif
æ¨é«ã¿ã¤ã«ã«ã¯ä»¥ä¸ã®å®ç¾©ãã¡ã¤ã«ãå¿ è¦ãªã®ã§ããlayer.jsonãã¨ããååã§terrainãã©ã«ãã®ä¸ã«å ¥ãã¦ããã¾ãã
{ "tilejson": "2.1.0", "format": "heightmap-1.0", "version": "1.0.0", "scheme": "tms", "tiles": ["{z}/{x}/{y}.terrain"] }
ã¾ãã0/1/0.terrainã¨0/0/0.terrainã¯å¿ é (?)ã®ãããªã®ã§ã0/0/0.terrainãããã®ã¾ã¾0/1/0.terrainã¨ãã¦ã³ãã¼ãã¦ããã¾ããï¼ä»åã®ãã¼ã¿ç¯å²ã¯ã0/0/0ã®é åã§ã¯ãªãã®ã§ä½æããã¦ããªãããï¼
ãªã«ã½ç»åãå°å³ã¿ã¤ã«ã«ãã¦ããã¾ããdem.tifã¨åãããã«ç¯å²ã1000åã«æ¡å¤§ãã¦ãpngå½¢å¼ã®å°å³ã¿ã¤ã«ã«å¤æãã¦ããã¾ãããªããctb-tileã§ä½æãããå°å³ã¿ã¤ã«ã¯tmsãªã®ã§åç¹ã¯åã«ãªãã¾ãã
gdal_translate -projwin 494398.737 4232696.642 494400.030 4232694.956 -a_ullr 494398.737 4232696.642 495893.03 4231008.956 odm_orthophoto.tif ortho_scale.tif mkdir ortho ctb-tile -p mercator -f png -o ortho ortho_scale.tif
ctb-tileã®ãªãã·ã§ã³ã®è©³ç´°ã¯ããã¡ãã«ããã¾ããhttps://github.com/geo-data/cesium-terrain-builder
5. Cesiumã§ãã£ã±ãå±±ã表示ãã
ãã£ã±ãå±±ã®ãã¼ã¿ãåºæ¥ä¸ãã£ãã®ã§ããããCesiumã§è¡¨ç¤ºãã¦ã¿ã¾ãã
5-1. Cesiumãç¨æãã
Cesiumã®ãµã¤ãããã©ã¤ãã©ãªããã¦ã³ãã¼ããã¾ãã
https://cesiumjs.org/
解åããã¨ãã¡ã¤ã«ã¨ãã©ã«ããè²ã
å
¥ã£ã¦ãã¾ããã使ç¨ããã®ã¯Appsãã©ã«ãã®ä¸ã®HelloWorld.htmlã¨Buildãã©ã«ãã®ä¸ã®Cesiumãã©ã«ãä¸å¼ã«ãªãã¾ãã
ã²ã¨ã¾ãåä½ç¢ºèªã®ããã«ãBash on Windowsã§ä»¥ä¸ã®ã³ãã³ããæã£ã¦ãç°¡æã¦ã§ããµã¼ãã¼ãèµ·åãã¾ãããã®å¾ããã©ã¦ã¶ã§ http://localhost:8000/ ã«ã¢ã¯ã»ã¹ãã¦ãHello Worldãã®ãªã³ã¯ãã¯ãªãã¯ãã¦ã¿ã¾ããããCtrl+Cã§ãµã¼ãã¼ãçµäºã§ãã¾ãã
cd Cesium-1.28 python -m SimpleHTTPServer
5-2. gltfã®èªã¿è¾¼ã¿
gltfãèªã¿è¾¼ãå ´åã¯ã以ä¸ã®ã³ã¼ããHelloWorld.htmlã«è¿½å ãã¾ãã3Dã¢ãã«ãæ£ããæ¹åã§èªã¿è¾¼ãã«ã¯ãä¸å¿ã軸ã«-90度å転ãããå¿ è¦ãããã¾ããé«ãã®ä¸å¿ã¯ãä»åã¯è¦ãç®ã§å¾®èª¿æ´ãã¾ãããCesiumã®é«ãã®åºæºã¯æ¥åä½é¢ï¼æµ·é¢0mã§ã¯ãªãï¼ãªã®ã§ããã®ã¸ãã®èª¿æ´ãå¿ è¦ã§ãã
var center = Cesium.Cartesian3.fromDegrees(140.9360018, 38.2422495, -5.5);//å°å½¢ãèªã¿è¾¼ãå ´åã¯42.5ã«ãã var heading = 0.0; var pitch = 0.0; var roll = -Math.PI / 2.0; var hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll); var transform = Cesium.Transforms.headingPitchRollToFixedFrame(center, hpr); var model = viewer.scene.primitives.add(Cesium.Model.fromGltf({ url:"./oppaiyama.gltf",modelMatrix : transform, scale : 1.0}) );
5-3. æ¨é«ã¿ã¤ã«ã¨ãªã«ã½ç»åã®èªã¿è¾¼ã¿
æ¨é«ã¿ã¤ã«ã¨ãªã«ã½ç»åã®å°å³ã¿ã¤ã«ãèªã¿è¾¼ãå ´åã¯ã以ä¸ã®ã³ã¼ããHelloWorld.htmlã«è¿½å ãã¾ãããªã«ã½ç»åã®å°å³ã¿ã¤ã«ã¯ãåãåç¹ã¨ãªã£ã¦ããã®ã§{reverseY}ã¨æå®ãã¾ãã
var terrainProvider = new Cesium.CesiumTerrainProvider({ url : './terrain' }); viewer.terrainProvider = terrainProvider; var ortho = new Cesium.UrlTemplateImageryProvider({ url: './ortho/{z}/{x}/{reverseY}.png' }); viewer.scene.imageryLayers.addImageryProvider(ortho);
5-4. ãã£ã±ãå±±ã®è¡¨ç¤º
ã¤ãã«Cesiumã§è¡¨ç¤ºã§ããã¨ããã¾ã§æ¥ã¾ããã5-1.ã¨åæ§ã«ç°¡æã¦ã§ããµã¼ãã¼ãèµ·åãã¦ç¢ºèªãããã¨ããã§ãããgzipå½¢å¼ã§å§ç¸®ããã¦ããæ¨é«ã¿ã¤ã«ã¯ããã®ã¾ã¾ã§ã¯SimpleHTTPServerã§ã¯é ä¿¡ã§ãã¾ãããããã§ãå ã®SimpleHTTPServer.pyãã³ãã¼ãã¦ä»¥ä¸ã®ã³ã¼ããå ãã¾ããããããã¨æ¡å¼µåã.terrainã®æ¨é«ã¿ã¤ã«ã¯gzipå½¢å¼ã¨ãã¦é ä¿¡ããã¾ãã
cp /usr/lib/python2.7/SimpleHTTPServer.py ./Cesium-1.28
self.send_response(200) self.send_header("Content-type", ctype) ## SimpleHTTPServer.pyã®95è¡ç®ä»¥éã«ä»¥ä¸ã®3è¡å ããï¼send_headé¢æ°å ï¼## base, ext = posixpath.splitext(path) if ext == ".terrain": self.send_header("Content-Encoding", "gzip") ###################################################
ãªããé常ã®ã¦ã§ããµã¼ãã¼ã®å ´åã¯.htaccessã以ä¸ã®ããã«è¨è¿°ãã¦è¨ç½®ãã¦ããã¾ãã
AddType application/octet-stream .terrain AddEncoding x-gzip .terrain
SimpleHTTPServer.pyãå¤æ´ãããç°¡æãµã¼ãã¼ãèµ·åãã¾ãããã5-1.ã®æã¨éã£ã¦ã-m ãªãã·ã§ã³ã¯ä»ããã«.pyãå«ãã®ã§ééããªãããã«ã
python SimpleHTTPServer.py
http://localhost:8000/Apps/HelloWorld.html ã«ã¢ã¯ã»ã¹ãã¦ã¿ã¾ããããï¼ç°¡æãµã¼ãã¼ã ã¨ãèªã¿è¾¼ã¿ã«å°ãæéããããã¾ããã¾ããæã
gltfã®èªã¿è¾¼ã¿ã«å¤±æããã®ã§ã表示ãããªãå ´åã¯Shift+ãªãã¼ããã¦ã¿ã¾ããï¼
6. ã¢ã¼ã«ã¤ããVRã§ä½é¨
ããã¾ã§ã®ä½æ¥ã§ããã£ã±ãå±±ãã¢ã¼ã«ã¤ããã¦ãCesiumã§è¡¨ç¤ºãããã¨ãã§ãã¾ãããCesiumã§ã¯ãããã«ã´ã¡ã¼ãã£ã«ãªã¢ã«ãã£(VR)表示ãå¯è½ãªã®ã§ããã£ã¦ã¿ã¾ãããã以ä¸ã®ããã«htmlãå¤æ´ããã¨ãç»é¢å³ä¸ã«VRãã¿ã³ã表示ãããããã«ãªãã¾ãã
var viewer = new Cesium.Viewer('cesiumContainer', { vrButton : true });
VRãã¿ã³ãæ¼ãã¨2ç»é¢è¡¨ç¤ºã«ãªããGoogle Cardboardã®ãããªãããã»ããã§è¦ãã¨è¨å ´æããµãããã¼ãã£ã«ãªã¢ãªãã£ä½é¨ãã§ãã¾ãã
â» VR表示ã¯iPhoneã«ã¯å¯¾å¿ãã¦ãã¾ããããPCã§VR表示ãããç»é¢ããªã¢ã¼ããã¹ã¯ãããã§ã¹ããã«è¡¨ç¤ºããã°å¯è½ã«ãªãã¾ãã
ã¾ã¨ã
åä¾ã¨ä½ã£ãç å ´ã®ãã£ã±ãå±±ã¯ãå¤æ¥ã¨ã¨ãã«å´©ãã¦ãªããªã£ã¦ãã¾ãã¾ããããã®ããã«ã¢ã¼ã«ã¤ããã¦ããã°ãæãåºã¨ä¸ç·ã«æ°¸é ã«æ®ãã¦ãããã¨ãã§ãã¾ãã
ãã©ã¤ã¹ã¬ã¹ãªãã®æ´»åãFOSS4Gãããã°èª°ã§ãã§ãã¾ããçããããã²ã試ããã ããï¼ããã§ã¯ãè¯ãã¯ãªã¹ãã¹ãã
追伸ï¼
Google Cardboadã¯ããã®ãã¨å¥ã®ãã£ã±ãå±±ã®é²è¦§ã«æå¹æ´»ç¨ããã¦ããã ãã¾ãããVRããã¼ããã ããã
åèãªã³ã¯
ãã®è¨äºã«ä½¿ç¨ããç»åãã³ã¼ã
ãã£ã±ãå±±ã¢ã¼ã«ã¤ã
http://ecoris.co.jp/map/Cesium-1.27/Apps/HelloWorld.html
http://ecoris.co.jp/map/Cesium-1.27/Apps/HelloWorld1.html
http://ecoris.co.jp/map/Cesium-1.27/Apps/HelloWorld2.html
OpenDroneMapé¢é£
https://github.com/OpenDroneMap/OpenDroneMap
https://github.com/OpenDroneMap/OpenDroneMap/wiki/Running-OpenDroneMap
https://github.com/OpenDroneMap/OpenDroneMap/wiki/Run-Time-Parameters
http://lists.osgeo.org/pipermail//opendronemap-users/2016-June/000314.html
https://github.com/wolkstein/OpenDroneMap-GCP_LIST.TXT-generator
ãã¼ã¿å¤æé¢é£
http://www.cs.unc.edu/~isenburg/lastools/
https://www.cs.unc.edu/~isenburg/lastools/download/las2dem_README.txt
https://github.com/KhronosGroup/COLLADA2GLTF
https://github.com/geo-data/cesium-terrain-builder
https://github.com/AnalyticalGraphicsInc/obj2gltf
http://www.sarasafavi.com/installing-gdalogr-on-ubuntu.html
http://blog.mastermaps.com/2014/10/3d-terrains-with-cesium.html
http://blog.mastermaps.com/2016/09/creating-tins-in-saga-gis.html
http://blog.mastermaps.com/2016/09/creating-tin-from-raster-dem.html
https://cesiumjs.org/data-and-assets/terrain/formats/heightmap-1.0.html
http://cesiumjs.org/data-and-assets/terrain/formats/quantized-mesh-1.0.html
http://www.pdal.io/
*1:åç¨ã ã¨PhotoScanã¨ãPix4Dãªã©ãããã¾ããããããã¯ã¦ã³åä¸åãããé«ä¾¡ãªã½ããã§ãå人ã§ã¯ã¨ã¦ãæãã§ã¾ããããã®ãããªãã¼ã«ã¨åçãªãã®ã使ããã®ã¯ãã»ãã¨FOSS4Gã®ãããã§ãããã ãã¾ã ã¾ã éçºéä¸ã§åç¨ã®ãã®ã«åã°ãªãé¨åã¯æ²¢å±±ããã¾ããã
*2:https://github.com/wolkstein/OpenDroneMap-GCP_LIST.TXT-generator
*3:objeå½¢å¼ããç´æ¥gltfå½¢å¼ã«å¤æã§ããobj2gltfã¨ããã½ãããããã¾ããããã¯ã¹ãã£ã表示ã§ããªãä¸å ·å(?)ããã£ãã®ã§è¦éãã¾ããã
*4:PDALã¨ãOpenDroneMapã§DEMã«å¤æã§ããã¨è¯ãã®ã§ãã
*5:Cesiumç¨ã®æ¨é«ã¿ã¤ã«ã¯heightmap-1.0 å½¢å¼ã®ã»ãã«ãquantized-mesh-1.0 å½¢å¼ã¨ãããã®ãããã¾ãããã¡ãã®å½¢å¼ã¯æ¨é«ãã¼ã¿ãTINã«ãã¦ããããã¿ã¤ã«ã«åãåããæ¹æ³ã®ããã§ãããã¾ã 使ããããå¤æã½ãããç¡ããããªã®ã§è©¦ãã¦ãã¾ãã