#author("2020-08-03T20:28:19+09:00","default:nobuoki","nobuoki")
#author("2020-08-03T20:30:03+09:00","default:nobuoki","nobuoki")
* はじめに [#k185e819]

現時点で意味があるか分かりませんが(後述)、[[宇宙利用プロジェクト | OSGeo.JP>https://www.osgeo.jp/projects/foss4g-mext]] の「基盤地図対応GDAL/OGR」をビルドするコンテナを作ってみました

* ビルド [#y1f48a34]

マシンスペックにも寄りますが、30[min] くらいは覚悟したほうが良さげです

#prism(bash){{{
curl -L https://gist.github.com/kemasoft-gist/744dd514f9d634de63f40cf6389e954f/raw | podman build - -t kemasoft/mext-gdal^C
}}}

ポイント

- 環境変数 LD_LIBRARY_PATH=/usr/local/lib を通しておく
- 普通にコンパイルするとエラーになるのでソースを修正
-- RUN sed -i '255s/pszHeaderNext/*&/' port/cplkeywordparser.cpp

#pre{{{
cplkeywordparser.cpp:255:26: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
 255 |     if( pszHeaderNext == '\0' )
}}}


#gist(kemasoft-gist/744dd514f9d634de63f40cf6389e954f)

参考
- [[国土地理院・基盤地図情報対応ライブラリ GDAL/OGR インストール! - mk-mode BLOG>https://www.mk-mode.com/blog/2014/07/13/gsi-install-gdal-ogr-lib-for-fgd/#]]
- [[ISO C++ forbids comparison between pointer and integer [-fpermissive]| [c++] - Stack Overflow>https://stackoverflow.com/questions/9280921/iso-c-forbids-comparison-between-pointer-and-integer-fpermissive-c]]



* 利用例 [#de5187a3]

#prism(bash){{{
# コンテナ起動をラクにするために alias を定義
alias prun='podman run --rm -it -v .:/mnt'

# ogr2ogr のバージョン確認
prun kemasoft/mext-gdal ogr2ogr --version
GDAL 1.10.0, released 2013/04/24

# 対応フォーマット一覧(FGDがあることを確認)
$ prun kemasoft/mext-gdal ogr2ogr --formats
Supported Formats:
  -> "ESRI Shapefile" (read/write)
  -> "MapInfo File" (read/write)
(略)
  -> "SEGY" (readonly)
  -> "PDF" (read/write)
  -> "FGD" (readonly)
}}}

* 微妙な点 [#hd82da9d]

- GDALバージョンが古すぎる
-- GDAL 1.10.0, released 2013/04/24
- JGD2011 非対応
-- 全ては確認していませんが、少なくとも EPSG:6668 は認識してもらえません
-- ERROR 6: EPSG PCS/GCS code 6668 not found in EPSG support files.  Is this a valid

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS