最初のGeoToolsプログラム¶
GeoToolsのユーザーガイドの下、チュートリアルのNetBeans QuickStartにあるプログラムを入力してビルド・実行します。
ただし、ドキュメントではmavenを使うプロジェクトですが、ここではNetBeansのデフォルトであるAntを使うプロジェクトで作成します。
地図データ(シェープ形式)の入手¶
プログラムを実行するにあたり、地図データが必要になります。ESRIシェープ形式のデータを読み込むプログラムなので、シェープ形式で手頃なデータを入手します。
今回は、Natural Earthの世界地図データ から海岸線(Coastline)の1:1千万分の1データを入手します。
“Large scale data, 1:10m”の下にある[Physicalをクリックし、Coastlineの箇所にある[Download coastline]をクリックします。
- 10m-coastline-zip
任意のディレクトリに展開します。以下のファイルから構成されます。
10m_coastline.dbf
10m_coastline.prj
10m_coastline.qix
10m_coastline.shp
10m_coastline.shx
初めてのGeoToolsプログラム¶
ここではNetBeansで作成する例を示します。
通常の新規プロジェクトでJavaアプリケーションを選択します。 Mainクラスを作成します。
/*
* シェープファイルを選択し、地図表示ウィンドウを開き選択したシェープファイルの内容を地図表示する。
*/
package hellogeotools;
import java.io.File;
import java.io.IOException;
import org.geotools.data.CachingFeatureSource;
import org.geotools.data.FileDataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.simple.SimpleFeatureSource;
import org.geotools.map.FeatureLayer;
import org.geotools.map.Layer;
import org.geotools.map.MapContent;
import org.geotools.styling.SLD;
import org.geotools.styling.Style;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.data.JFileDataStoreChooser;
public class HelloGeoTools {
public static void main(String[] args) throws IOException {
File file = JFileDataStoreChooser.showOpenFile("shp", null);
if (file == null) {
System.err.println("No such file.");
return;
}
FileDataStore store = FileDataStoreFinder.getDataStore(file);
SimpleFeatureSource featureSource = store.getFeatureSource();
MapContent map = new MapContent();
map.setTitle("Quickstart");
Style style = SLD.createSimpleStyle(featureSource.getSchema());
Layer layer = new FeatureLayer(featureSource, style);
map.addLayer(layer);
JMapFrame.showMap(map);
}
}