GeoToolsを使ったJava GISプログラミング

GeoToolsのインストール

«  GeoToolsの概要   ::   Contents   ::   最初のGeoToolsプログラム  »

GeoToolsのインストール

バイナリの入手

GeoToolsサイト からDownloadsのリンクを辿ります。執筆時点では、sourceforgeのgeotoolsプロジェクトサイトに飛びます。

2012年12月15日現在で最新の8.3を入手します。

  • geotools-8.3-bin.zip

APIのJavaDocドキュメントも用意されているので、合わせて入手しておくとよいでしょう。

  • geotools-8.3-doc.zip

展開

入手したバイナリを任意のディレクトリに展開します。ここでは、C:Program FilesJava ディレクトリに入手したバイナリを展開したとします。

C:Program FilesJavageotools-8.3 ディレクトリが生成され、多数のjarファイルが展開されます。

batik-transcoder-1.7.jar                gt-svg-8.3.jar
common-2.6.0.jar                        gt-swing-8.3.jar
commons-beanutils-1.7.0.jar             gt-swt-8.3.jar
commons-cli-2.0-gt2-pre1.jar            gt-validation-8.3.jar
commons-codec-1.2.jar                   gt-vpf-8.3.jar
commons-collections-3.1.jar             gt-wfs-8.3.jar
commons-dbcp-1.3.jar                    gt-wms-8.3.jar
commons-digester-1.7.jar                gt-wps-8.3.jar
commons-httpclient-3.1.jar              gt-xml-8.3.jar
commons-io-2.1.jar                      gt-xsd-core-8.3.jar
commons-jxpath-1.3.jar                  gt-xsd-fes-8.3.jar
commons-lang-2.3.jar                    gt-xsd-filter-8.3.jar
commons-logging-1.1.1.jar               gt-xsd-gml2-8.3.jar
commons-pool-1.5.4.jar                  gt-xsd-gml3-8.3.jar
core.commands-3.6.0.I20100512-1500.jar  gt-xsd-kml-8.3.jar
core.runtime-3.6.0.v20100505.jar        gt-xsd-ows-8.3.jar
eastwood-1.1.1-20090908.jar             gt-xsd-sld-8.3.jar
ecore-2.6.1.jar                         gt-xsd-wcs-8.3.jar
ehcache-1.6.2.jar                       gt-xsd-wfs-8.3.jar
equinox.common-3.6.0.v20100503.jar      gt-xsd-wms-8.3.jar
geodb-0.7-RC2.jar                       gt-xsd-wps-8.3.jar
gt-api-8.3.jar                          h2-1.1.119.jar
gt-app-schema-8.3.jar                   hsqldb-1.8.0.7.jar
gt-app-schema-resolver-8.3.jar          icu4j-3.4.4.jar
gt-arcgrid-8.3.jar                      imageio-ext-arcgrid-1.1.5.jar
gt-arcsde-8.3.jar                       imageio-ext-gdalarcbinarygrid-1.1.5.jar
gt-arcsde-common-8.3.jar                imageio-ext-gdaldted-1.1.5.jar
gt-brewer-8.3.jar                       imageio-ext-gdalecw-1.1.5.jar
gt-charts-8.3.jar                       imageio-ext-gdalecwjp2-1.1.5.jar
gt-coverage-8.3.jar                     imageio-ext-gdalehdr-1.1.5.jar
gt-coveragetools-8.3.jar                imageio-ext-gdalenvihdr-1.1.5.jar
gt-cql-8.3.jar                          imageio-ext-gdalerdasimg-1.1.5.jar
gt-csv-8.3.jar                          imageio-ext-gdalidrisi-1.1.5.jar
gt-data-8.3.jar                         imageio-ext-gdalkakadujp2-1.1.5.jar
gt-epsg-extension-8.3.jar               imageio-ext-gdalmrsid-1.1.5.jar
gt-epsg-hsql-8.3.jar                    imageio-ext-gdalmrsidjp2-1.1.5.jar
gt-epsg-oracle-8.3.jar                  imageio-ext-gdalnitf-1.1.5.jar
gt-epsg-postgresql-8.3.jar              imageio-ext-gdalrpftoc-1.1.5.jar
gt-epsg-wkt-8.3.jar                     imageio-ext-imagereadmt-1.1.5.jar
gt-feature-aggregate-8.3.jar            imageio-ext-imagereadmt-1.1M012010.jar
gt-feature-pregeneralized-8.3.jar       imageio-ext-kakadu-1.1.5.jar
gt-geojson-8.3.jar                      imageio-ext-mat-sas-1.1M012010.jar
gt-geometry-8.3.jar                     imageio-ext-streams-1.1.5.jar
gt-geotiff-8.3.jar                      imageio-ext-tiff-1.1.5.jar
gt-graph-8.3.jar                        imageio-ext-utilities-1.1.5.jar
gt-grassraster-8.3.jar                  jai_codec-1.1.3.jar
gt-grid-8.3.jar                         jai_core-1.1.3.jar
gt-gtopo30-8.3.jar                      jai_imageio-1.1.jar
gt-image-8.3.jar                        javacsv-2.0.jar
gt-imageio-ext-gdal-8.3.jar             jdom-1.0.jar
gt-imagemosaic-8.3.jar                  jface-3.6.1.M20100825-0800.jar
gt-imagemosaic-jdbc-8.3.jar             jgridshift-1.0.jar
gt-imagepyramid-8.3.jar                 json-simple-1.1.jar
gt-jdbc-8.3.jar                         jsqlparser-0.3.14.jar
gt-jdbc-db2-8.3.jar                     jsr-275-1.0-beta-2.jar
gt-jdbc-h2-8.3.jar                      jt-contour-1.3.0.jar
gt-jdbc-mysql-8.3.jar                   jt-rangelookup-1.3.0.jar
gt-jdbc-oracle-8.3.jar                  jts-1.12.jar
gt-jdbc-postgis-8.3.jar                 jt-utils-1.3.0.jar
gt-jdbc-spatialite-8.3.jar              jt-vectorbinarize-1.3.0.jar
gt-jdbc-sqlserver-8.3.jar               jt-vectorize-1.3.0.jar
gt-jdbc-teradata-8.3.jar                jt-zonalstats-1.3.0.jar
gt-jp2k-8.3.jar                         log4j-1.2.12.jar
gt-jts-wrapper-8.3.jar                  miglayout-3.7-swing.jar
gt-main-8.3.jar                         mongo-java-driver-2.5.jar
gt-mark-wkt-8.3.jar                     mysql-connector-java-5.1.17.jar
gt-matfile5-8.3.jar                     net.opengis.fes-8.3.jar
gt-metadata-8.3.jar                     net.opengis.ows-8.3.jar
gt-mongodb-8.3.jar                      net.opengis.wcs-8.3.jar
gt-opengis-8.3.jar                      net.opengis.wfs-8.3.jar
gt-postgis-versioned-8.3.jar            net.opengis.wfsv-8.3.jar
gt-process-8.3.jar                      net.opengis.wps-8.3.jar
gt-process-feature-8.3.jar              org.w3.xlink-8.3.jar
gt-process-geometry-8.3.jar             picocontainer-1.2.jar
gt-process-raster-8.3.jar               postgis-driver-1.0.jar
gt-property-8.3.jar                     postgresql-8.4-701.jdbc3.jar
gt-property-ng-8.3.jar                  sqlite-jdbc-spatialite-3.7.2-2.4.jar
gt-referencing3D-8.3.jar                swt.gtk.linux.x86-3.6.1.v3655c.jar
gt-referencing-8.3.jar                  swt.win32.win32.x86_64-3.6.1.v3655c.jar
gt-render-8.3.jar                       ui.workbench-3.6.1.M20100826-1330.jar
gt-sample-data-8.3.jar                  vecmath-1.3.2.jar
gt-sample-data-access-8.3.jar           xercesImpl-2.7.1.jar
gt-sfs-8.3.jar                          xml-apis-xerces-2.7.1.jar
gt-shapefile-8.3.jar                    xml-commons-resolver-1.2.jar
gt-shapefile-ng-8.3.jar                 xpp3_min-1.1.4c.jar
gt-shapefile-renderer-8.3.jar           xsd-2.6.0.jar

すごい量ですが、データベース関連(mysql, postgresql, sqlite, ...)などもあり、必ずしも全てが必要なわけではありません。依存関係を調査できれば必要なものを絞り込むことができます。

依存関係の調査

GeoToolsaアプリケーションを作成する場合、アプリケーションから直接利用するクラスは、gt-で始まる名前のjarファイルです。

依存関係を調べるには、GeoToolsのソースを展開し、含まれるmavenプロジェクトを使います。

$ mvn dependency:tree

依存関係では、compile時依存、test時依存の種別が出ますが、アプリケーションのビルド・実行では、compileだけ満たせればよいはずです。

次に、アプリケーションから直接利用されるクラスを含むJARを幾つかmavenコマンドで依存関係を調べてみました。

gt-apiの依存JAR一覧

gt-api
 +- jts
 |   +- xercesImpl
 +- gt-referencing
 |   +- vecmath
 |   +- commons-pool
 |   +- gt-metadata
 |   |   +- gt-opengis
 |   |       +- jsr-275
 |   +- jgridshift
 +- jai_core

gt-mainの依存JAR一覧

gt-main
 +- gt-api (以下略)
 +- jts (以下略)
 +- jdom
 +- jai_core
 +- junit :provided

gt-rendererの依存JAR一覧

gt-renderer
 +- gt-main (以下略)
 +- gt-coverage
 |   +- gt-referencing (以下略)
 |   +- imageio-ext-tiff
 |   |   +- imageio-ext-utilities
 |   +- jt-zonalstats
 |   +- jt-utils
 +- gt-cql
 +- jai_core

gt-swingの依存JAR一覧

gt-swing
 +- gt-referencing (以下略)
 +- gt-renderer (以下略)
 +- miglayout
 +- jai_core
 +- gt-wms  :provided
 |   +- commons-httpclient
 |   |   +- commons-logging
 |   +- gt-xml
 +- gt-process :provided
 +- gt-process
 +- gt-epsg-hsql
 |   +- hsqldb
 +- gt-geotiff
 +- gt-sample-data
 +- gt-shapefile
 |   +- gt-data
 +- fest-swing-unit
 |   +- commons-codec
 |   +- fest-swing
 |       +- fest-assert
 |       +- fest-reflect
 |       +- fest-util
 |       +- jcip-annotations
 +- jt-utils
 +- junit

API Javadocの展開

バイナリを展開したC:Program FilesJavageotools-8.3 ディレクトリの下に展開します。apidocsというディレクトリが生成されます。

ライブラリ設定

開発環境において、依存関係の絞り込みは事前に予想できないため、全てを指定しておくのが無難です。

NetBeansでのライブラリ設定

  • [ツール]メニュー > [ライブラリ]を選択し、「ライブラリマネージャー」ダイアログを表示する
  • [新規ライブラリ]ボタンを押し、ライブラリ名に適切な名前(ここでは、GeoTools 8.3)を入力し、[了解]ボタンを押す
  • [クラスパス]タブを選択し、[JAR/フォルダを追加]ボタンを押し、「JAR/フォルダを参照」ダイアログを表示する
  • GeoToolsを展開した場所へ移動し、表示されているJARをすべて選択し(最初のJARファイルであるbatik-transcoder-1.7.jarをクリックし、スクロールして最後のJARファイルであるxsd-2.6.0.jarをシフトキーを押しながらクリックすると、その間のJARがすべて選択状態となる)、[JAR/フォルダを追加]ボタンを押す
  • 「ライブラリマネージャー」ダイアログで、左側ライブラリ欄でGeoTools 8を選択し、右側[Javadoc]タブを選択し、[ZIP/フォルダを追加]ボタンを押し、「ZIP/フォルダを参照」ダイアログを表示する
  • apidocsを選択し、[ZIP/フォルダを追加]ボタンを押す
  • 「ライブラリマネージャー」ダイアログで[了解]ボタンを押す

«  GeoToolsの概要   ::   Contents   ::   最初のGeoToolsプログラム  »