GeoServer とその REST API を導入する

API と組み込み WMS および WFS サーバーを完備したオープンソースのデータ管理システム

GeoServer は、地理情報システム (GIS) のデータ・ソースを管理し、そのデータを WFS (Web Feature Service) および WMS (Web Map Service) 準拠の Web サービスを介して簡単に提供できるオープンソースのサーバーです。GeoServer には、複雑な Web アプリケーションの実行時に手動による介入なしでデータを管理するための包括的な REST (Representational State Transfer) API が組み込まれています。さらに、GeoServer は OpenLayers マッピング・ツールと連携して威力を発揮します。この記事では GeoServer の概要を紹介するとともに、GeoServer API の PHP ラッパー・クラスを作成する利点を含め、GeoServer の詳細を探ります。

Christopher Michaelis, Developer, Consultant

Christopher Michaelis photoChristopher Michaelis は、Web アプリケーション、教育用ツール、および空間プログラミングを専門とするソフトウェア開発者です。ユタ州立大学とアイダホ州立大学で、コンピューター・サイエンスと地理情報科学を学びました。環境モデリング、教育、糖尿病データ分析、システム管理ツール、Web ホスティング、ロケーション・ベースのサービス、Web マッピング、クロスプラットフォーム・アプリケーション開発などを対象としたアプリケーションをはじめとする広範な開発分野で経験を積んでいます。



2013年 6月 27日

Web に地理空間データを提供している読者の方であれば、MapServer については十分ご存知のことでしょう。地理空間データを提供するためのサーバーとして決まって第一候補に挙げられる MapServer は、静的なデータ・ソースを提供することに関しては卓越していますが、これを構成するのは時間のかかる手作業でのプロセスとなります。また、すぐに利用できる API ベースの構成ソリューションやデータ管理ソリューションもありません。長期にわたってデータを管理するための完全なソリューション、あるいは GIS 指向の Web アプリケーションの完全な基盤となるサーバーを探している場合には、GeoServer のほうがより賢い選択になる可能性があります。

GeoServer は、GIS データの管理を容易にするオープンソースのサーバーで、MapServer と同じように WMS 標準および WFS 標準に従ってデータを提供します。また、WFS-T で実際のデータを変更することもでき、GML (Geography Markup Language)、KML (Keyhole Markup Language (KML) をはじめとするその他多数のフォーマットもサポートしています。内部では、データがワークスペースとデータ・ストアに整理され、ディスク・ベースのストレージや PostGIS を使用することができます。さらに、組み込み REST API を使用してデータ・セットをリアルタイムで管理することも可能です。この GeoServer ソフトウェアには、完全な Web インターフェースも組み込まれています。

GeoServer を詳細に紹介するこの記事では、そのインストール・プロセスと Web ベースの管理 GUI について詳しく説明するとともに、操作を単純化するために PHP ラッパー・クラスを介して REST API を使用する方法を説明します。

前提となる知識とその参照先

本題に入る前に、GIS とは何であるかについての基本的な理解と、シェープファイル、ベクター・フィーチャー属性、投影といった GIS 用語についてのある程度の知識が必要です。これらの基本事項をおさえるのに最適なチュートリアルとして、GIS Lounge の「GIS 101」ページへのリンクを「参考文献」で参照してください。

WMS はマップ画像をリクエストするためのインターフェースで、WFS はマップのベクター・データをリクエストするためのインターフェースです。データを表示することだけが目的である場合には、WMS のほうが適しています。WFS が適しているのは、ユーザーに基本となるデータを操作させる必要がある場合です (例えば、属性テーブルの値を照会したり、データを変更したりするなど)。WFS の機能をトランザクション対応に変更したものは、多くの場合 WFS-T またはトランザクション WFS と呼ばれます。

GeoServer で行う操作の多くは XML フォーマットで指定されるため、XML 全般の知識があると役に立ちます。XML の概要をわかりやすく説明している「XML Basics」チュートリアルへのリンクを「参考文献」で参照してください。

この記事のインストール手順に従うには、Linux コマンドラインおよび Linux サーバーへのアクセスに関する基本的な知識が必要です。ディスク上のシェープファイルを使用するのではなく、PostGIS をデータ・ストレージ・システムとして使用する場合には、PostgreSQL と PostGIS (および PostGIS サーバーへのアクセス) に関する知識が役に立ちます。

最後に、優れた JavaScript クライアント・サイドのマッピング・ツールとなる OpenLayers は、空間対応の Web アプリケーションを作成する際に GeoServer と緊密に連携します。OpenLayers については、記事「OpenLayers を使用してデータを統合する」を参照してください。


インストール

GeoServer は、Java サーブレットであるため、Apache Tomcat などのサーブレット・コンテナーの内部で動作します。組み込み Jetty サーブレット・コンテナーを使用してスタンドアロン・サーブレットとして GeoServer を実行することもできます。この方法は、ローカルでテストをするには適していますが、大規模または大容量のインストールには Tomcat のほうが適しているため、この記事では Tomcat を使用した場合のみを取り上げます。

サーバー要件

root アクセス権を持っている Linux サーバーであれば、どの Linux サーバーでも十分です。GeoServer は、小規模な IBM PowerVM インスタンスや System Z パーティションなどの小さいサイズの VM インスタンスで簡単に実行することができます。必要な容量は、GeoServer インストール済み環境に送信する予定のトラフィック量に直接対応します。GIS データのすべてを保管するのに十分なディスク・スペースと、オペレーティング・システムおよび GeoServer 用に約 5 GB を用意してください。少なくとも 512 MB のメモリーが推奨されます。Microsoft Windows と Mac OS X もサポートされていますが、本番用には Linux が最適です。この記事の説明はすべて、読者が Ubuntu サーバーまたは Debian サーバーを使用していることを前提としています。

Apache Tomcat と GeoServer WAR のインストール

まず始めに、apt-get install tomcat7 を実行して Tomcat をインストールします。インストールが完了したら、http://<ご使用のサーバー>:8080 でテスト・ページを確認してください。次に、GeoServer 安定版のダウンロード・ページ (「参考文献」を参照) にアクセスして、Web Archive (WAR) 圧縮ファイルをダウンロードします。ZIP を解凍して、アーカイブの geoserver.war ファイルを /var/lib/tomcat7/webapps/ に移します。圧縮ファイルから解凍された残りのファイルは無視します。service tomcat7 restart を実行して Tomcat を再起動し、http://<ご使用のサーバー>:8080/geoserver/ にアクセスしてデフォルトの GeoServer インストール済み環境を確認します。Tomcat サーバーは再起動時に自動的に起動されます。

デフォルトのデータ・ディレクトリーは /var/lib/tomcat6/webapps/geoserver/data/ です。このディレクトリーにはセキュリティー構成が格納されます。ここが、データ・ストアのデフォルト・ロケーションです。実際の GIS データ・ストア・ファイル用のディレクトリーとなるのは、このディレクトリーに含まれる「data」というサブディレクトリーなので、「data」の部分が 2 回連続するパスを頻繁に使用することになります (例えば、/var/lib/tomcat7/webapps/geoserver/data/data/USA/state.shp)。このセットアップが煩わしい場合は、データ・ストア・ロケーションの名前をより明示的な名前 (gis_data など) に変更しても構いません。

8080 以外のポートで実行する必要がある場合は、/etc/tomcat7/server.xml ファイルを編集します。このファイルで <Connector port="8080" protocol="HTTP/1.1" という行を見つけて、808080 (または使用する別のポート) に変更してからファイルを保存します。その後、Tomcat を再起動してください。

オプションの拡張機能

GeoServer には、追加のデータ・ソース (例えば、IBM DB2 など) や新しい機能 (例えば、WPS (Web Processing Service) や Excel 出力など) を提供する多数のオプション拡張機能が用意されています。これらの拡張機能は、GeoServer ダウンロード・ページ (「参考文献」を参照) から入手することができます。

拡張機能をインストールするには、その機能を /var/lib/tomcat7/webapps/geoserver/WEB-INF/lib/ に解凍します。拡張機能のインストールが完了したら (必要な拡張機能を同様のステップですべてインストールし終えたら)、GeoServer を再起動 (sudo service tomcat7 restart) します。

とりわけ有用な拡張機能としては、OGR と MySQL の 2 つが挙げられます。OGR は追加のベクター・データ出力オプションをサポートし、MySQL は MySQL データ・ストレージをサポートします。OGR 拡張機能をインストールする際には、システム上に有効な ogr2ogr バイナリーが存在することを確認してください。このバイナリーがない場合には、sudo apt-get install gdal-bin を実行して gdal-bin パッケージをインストールします。GeoServer の再起動後は、レイヤー・プレビューのドロップダウン・リストに OGR フォーマットのオプションが表示されるようになります。同様に、MySQL をインストールしてシステムを再起動した後は、「New data source (新規データ・ソース)」のストレージ・オプションの 1 つとして MySQL データベースが表示されるようになります。MySQL はサポートされていない拡張機能なので、MySQL を使用しなければならないという場合を除き、PostGIS (PostgreSQL) を使用するのが賢明な選択です。


Web GUI

インストールが完了したら、管理 GUI にアクセスして、ここで概説する基本セットアップ手順を最後まで実行します。この手順は、自分で作成した Web アプリケーションでのみ GeoServer を使用することを計画している場合にも必要です。

初期構成

デフォルトのユーザー名は admin、パスワードは geoserver です。ログインした後、左側のメニューで「Security (セキュリティー)」 > 「Users (ユーザー)」の順にクリックします。この操作によって表示されるリストで管理ユーザー名をクリックすると、管理パスワードを変更することができます。このツールは、新しいユーザーを追加するときにも使用することができます。

現在持っているシェープファイルのデータ・ソースをアップロードしたり、PostGIS データベースを作成したりすることができます。例えば、US のデータ・セット用に /var/lib/tomcat7/webapps/geoserver/data/data/USA ディレクトリーを作成して、そこにデータ・ファイルをアップロードします。ファイルの所有権を、GeoServer インスタンスを実行するユーザーに変更します (Apache Tomcat を使用している場合は、tomcat7)。PostGIS を使用するとしたら、shp2pgsql ユーティリティーを使ってシェープファイルをインポートすることができます。PostGIS にデータをロードする方法についての詳細は、「参考文献」を参照してください。

GeoServer は、ワークスペースおよびデータ・ストア内でデータ (レイヤー) を体系化します。レイヤーとは、道路や湖などの個々のデータ・セットのことです。ワークスペースは、特定のプロジェクトまたは地理的地域のデータを論理的にグループ化する手段になります。ワークスペースには 1 つ以上のデータ・ストアを含めることができ、データ・ストアによってデータの物理ストレージの場所が特定されます (例えば、ディスク上のディレクトリーやファイル、PostGIS データベース・テーブルなど)。

データを準備した後、GeoServer にデータを追加するには、「Data (データ)」メニューで該当するオプションをクリックします。ほとんどのオプションでは、デフォルトの設定をそのまま使用することができます。ワークスペースの名前空間は一意の値でなければならず、http://<ご使用のサーバー名>/<ワークスペース名> としてセットアップする必要があります。レイヤーを追加することを、レイヤーを「パブリッシュする」と言います。このプロセスでは、適切な座標系 (SRS (Spatial Referenece System: 空間参照系)) を選択し、2 つの境界ボックスそれぞれの下にある「Compute (計算)」をクリックします。このプロセスを、初期ワークスペース、データ・ストア、レイヤーのすべてに対して繰り返します。

PostGIS を使用する場合、最適な結果を得るためには、データを GeoServer に追加する前に各データベース・テーブルに 1 つ以上のシェープを追加してください。レイヤーを構成した後は、それらのレイヤーを GeoServer から直接プレビュー表示します (図 1 を参照)

図 1. レイヤーのプレビュー表示
レイヤー・プレビュー機能と、シェープの 1 つの属性データを示すスクリーン・キャプチャー

セキュリティー

GeoServer では、ユーザー・ロールをセットアップして、特定のワークスペースおよびサービスに対するアクセスを制御することができます。GeoServer インストール済み環境が一般に公開されるものであるとしたら、「Security (セキュリティー)」メニューを使用していろいろ試すことにより、ロールがどのように機能するかを確実に理解してください。多くの場合、インストール済み環境はファイアウォールの背後か、プライベート・ネットワーク上に配置して、フルアクセス権が設定されたログインを 1 つだけ使用する可能性があります。こうすれば、独自のソフトウェアや、次のセクションで取り上げる PHP プロキシーを介して、GeoServer に対するあらゆる操作を実行することができます。

継続的な保守とデータ管理

サーバーのディスク・スペース、プロセッサー、メモリーが、時間とともに増加していく需要を確実に満たし続けるようにしてください。また、サーバーの定期バックアップをスケジューリングする必要があります (/var/lib/tomcat7/webapps/geoserver ディレクトリー全体と、すべての PostGIS データベースをバックアップします)。数百ものレイヤーを使用する場合には、混乱しないように、ワークスペース、名前空間、データ・ストア、ファイル名に対する命名規則をあらかじめ計画しておかなければなりません。


REST API と PHP ラッパー

GeoServer に組み込まれている API は、ほとんどのアクションをプログラムによって実行することができます。必要に応じてレイヤーを自動的に追加、削除できる GeoServer は、この API のおかげで、データ管理ツールとしても、複雑な Web アプリケーションの基盤としても役に立ちます。GeoServer API は直接使用することもできますが、操作を単純化して必要な通信をカプセル化する PHP ラッパー・クラスを作成すると便利です。独自の目的に合わせて使用および拡張できる単純な API ラッパーとテスト・ページを入手するには、「ダウンロード」を参照してください。

API 操作を実行するには、いずれの場合もベース URL (http://<ご使用のサーバー>:8080/geoserver/rest/) に対する GETPOSTPUT、または DELETE 操作を使用します。対象のオブジェクト (例えば、ワークスペース) は、このベース URL に追加します。オプションで、この URL の末尾にピリオドを追加し、それに続けて戻りデータのフォーマット (通常は、XML、JSON (JavaScript Object Notation)、または HTML) を指定することができます。したがって、http://<ご使用のサーバー>:8080/geoserver/rest/workspaces.xml に対する GET 操作によって、すべてのワークスペースが XML フォーマットでリストアップされることになります。GET 文は通常、POST 文でオブジェクトのインスタンスを作成したとき、または PUT 文でオブジェクトを更新したときに使用したフォーマットで結果を返します。GET 操作が返すすべての詳細を指定しなければならないことはめったにありません。具体的な REST API アクションの例は、PHP ラッパー・クラス (「ダウンロード」を参照) に含まれています。REST configuration API reference (REST 構成 API リファレンス) へのリンクについては、「参考文献」を参照してください。

データの一覧表示、作成、削除

サンプル PHP ラッパーには、主要なオブジェクト・タイプのそれぞれを一覧表示、削除、作成する単純な関数が含まれています。PostGIS データ・ストアを作成するときには、データベースが存在していなければなりません。PostGIS テーブルに対して createLayer を使用する場合、レイヤー名はテーブル名です。GeoServer にレイヤーを追加する前に、テーブルに少なくとも 1 つのシェープが格納されていることを確認してください。シェープファイル・ディレクトリーのデータ・ストアを使用する場合、レイヤー名はファイル名 (パスなし) であり、そのファイルがデータ・ストア・ロケーションに存在している必要があります。リスト 1 に、1 回の簡単な操作でワークスペース、データ・ストア、レイヤーを作成するプロセスを示します。

リスト 1. ワークスペースと PostGIS データ・ストアを作成し、レイヤーをパブリッシュする
include "GeoserverWrapper.php";
$geoserver = new GeoserverWrapper('http://geosrvr.chrismichaelis.com/geoserver',
          $username, $password);

// public function createWorkspace($workspaceName)
$geoserver->createWorkspace('delineation_34');

// public function createPostGISDataStore($datastoreName, $workspaceName,
//        $databaseName, $databaseUser, $databasePass, $databaseHost = 'localhost',
//        $databasePort = '5432')
$geoserver->createPostGISDataStore('d34_outputs', 'delineation_34', 'delineations',
          'gisuser', 'gisuser', 'localhost');

// Create table
pg_query("CREATE TABLE d34_stream_output (...)"); 
// Add shape(s) according to your own program logic
pg_query("INSERT INTO d34_stream_output (...)");

// public function createLayer($layerName, $workspaceName, $datastoreName,
//        $description = '')
$geoserver->createLayer('d34_stream_output', 'delineation_34', 'd34_outputs',
          'Delineation outputs for run #34');

レイヤーの表示

viewLayer 関数を使用して、GML または KML (後者は Google Earth のフォーマット) のデータ・セットをリクエストすることができます。Google Earth で直接 KML 出力を使用したい場合は、データ・セットが緯度と経度の座標で保管されていることを確認してください。独自の凡例レイアウトを作成するために四角形の凡例画像を取得するには、viewLayerLegend 関数を使用します。

GeoServer データを最も簡単に、そして最も柔軟に表示する方法は、OpenLayers を使用することです。OpenLayers はブラウザー・ベースのツールであるため、Web ページからのリクエストには必ず同じドメイン名と同じポートを使用する必要があります。この制約事項は、メイン Web サイト以外のポートやサーバー上の GeoServer インストール済み環境と直接通信できないようにするためのセキュリティー機能でもあります。そのため、PHP ラッパーには、リクエストを GeoServer に渡す wfsPost 関数が用意されています。サンプルの tester.php API テスト・クラスでは、この関数を使用して OpenLayers からのリクエストをキャプチャーし、GeoServer にリダイレクトします。リスト 2 に、これに該当するコードを記載します。

リスト 2. GeoServer へのリクエストをキャプチャーしてリダイレクトする
// See if we're passing a WFS request to the server on private net
// (or for cross domain protection bypassing proxy)
$pathParts = explode('/', $_SERVER['PATH_INFO']);
if ($pathParts[1] == 'wfsauth') {
  $unused = array_shift($pathParts);
  $unused = array_shift($pathParts);
  $user = array_shift($pathParts);
  $pass = array_shift($pathParts);

  // Pass through for WFS using username and password to follow
  include "GeoserverWrapper.php";
  $geoserver = new GeoserverWrapper('http://geosrvr.chrismichaelis.com/geoserver',
          $user, $pass);
  $wfs = implode('/', $pathParts);
  if ($_SERVER['QUERY_STRING'] != '') $wfs .= '?' . $_SERVER['QUERY_STRING'];
  // public function wfsPost($apiPath, $post)
  echo $geoserver->wfsPost($wfs, file_get_contents('php://input'));
  return;
} else if ($pathParts[1] == 'wfs') {
  $unused = array_shift($pathParts);
  $unused = array_shift($pathParts);

  // No auth required
  include "GeoserverWrapper.php";
  $geoserver = new GeoserverWrapper('http://geosrvr.chrismichaelis.com/geoserver');
  $wfs = implode('/', $pathParts);
  if ($_SERVER['QUERY_STRING'] != '') $wfs .= '?' . $_SERVER['QUERY_STRING'];
  echo $geoserver->wfsPost($wfs, file_get_contents('php://input'));
  return;
}

リスト 3 に、この PHP プロキシーを介して OpenLayers を WFS レイヤーに接続する方法を示します。このコードと関数では wfs という名前を使用していますが、WMS レイヤーを使用するとしても、この手法は同じく有効です。WMS は、PNG (Portable Network Graphics) フォーマットのマップ画像を提供します。WFS は実際のマップ・データを GML フォーマットで提供します。そのデータが、クライアント・サイドで JavaScript によってレンダリングされます。

リスト 3. OpenLayers から GeoServer WFS レイヤーを使用する
wfs = new OpenLayers.Layer.Vector("Editable Features", {
  strategies: [ new OpenLayers.Strategy.BBOX(), new OpenLayers.Strategy.Save() ],
      /* The preceding line enables WFS-T. */
  projection: new OpenLayers.Projection("EPSG:900913"),
      /* 900913 = Google projection, which is required to use Google Earth base layers */
  protocol: new OpenLayers.Protocol.WFS({
    version: "1.1.0",
    srsName: "EPSG:900913",
    url: "http://.../geoserver_api/index.php/wfsauth/USERNAME/PASSWORD",
    featureNS :  "http://chrismichaelis.com/test_1",
    featurePrefix: 'test_1',
    featureType: "roads2",
    geometryName: 'the_geom',
    schema: "http://.../geoserver_api/index.php/wfsauth/USERNAME/PASSWORD/" +
      "DescribeFeatureType?version=1.1.0&typename=test_1:roads2"
  })
});

map.addLayer(wfs);

この手法を使用して、追加セキュリティーを実装することもできます。例えば、GeoServer がプライベート・ネットワーク上またはファイアウォールの背後に配置されているとします。その場合、PHP アプリケーションで GeoServer を操作するときに、リクエスト URL を詳細に調べて、Web アプリケーションのどのユーザーがリクエストされたレイヤーに対するアクセス権を持っているかを確認することができます。

WFS-T によるデータの変更

WMS に勝る WFS の利点の 1 つは、トランザクションを実行することによってサーバー上のデータ・セットを直接更新できることです。OpenLayers を使用する場合、Save ストラテジーを作成するリスト 3 の行を組み込んでください。OpenLayers の DeleteFeatureDrawFeature、および ModifyFeature コントロールを使用すると、Web アプリケーションで素早く簡単にシェープを編集することができます。

ディスク上のシェープファイルや PostGIS テーブルを直接編集しようとするのではなく、独自の PHP コードから編集操作を直接行うことをお勧めします。API ラッパーには、XML トランザクション・ステートメントを受け入れる executeWFSTransaction 関数が用意されています。この関数で、トランザクションの一部として名前空間とレイヤーを指定します。WFS-T トランザクション・ステートメントの作成方法についての詳細は、「参考文献」にリンクが記載されている、GEOSS の「Transactional WFS」チュートリアルを参照してください。

リスト 4 に、単純な WFS-T トランザクションを実行する方法を示します。このトランザクションによって、L 字型の線が挿入されます。

リスト 4. 小さなシェープを挿入するための WFS-T トランザクションを実行する
$WFSTRequest = '
<?xml version="1.0" ?>
<wfs:Transaction service="WFS" version="1.1.0" xmlns:wfs="http://www.opengis.net/wfs"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.opengis.net/wfs
          http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
  <wfs:Insert>
    <feature:roads2 xmlns:feature="http://chrismichaelis.com/test_1">
      <feature:the_geom>
        <gml:MultiCurve srsName="EPSG:900913" xmlns:gml="http://www.opengis.net/gml">
          <gml:curveMember>
            <gml:LineString>
              <gml:posList>
                -11575958.058425 5537202.2479459 -11575346.562199
                5524666.5753089 -11561893.645222 5524666.5753089
              </gml:posList>
            </gml:LineString>
          </gml:curveMember>
        </gml:MultiCurve>
      </feature:the_geom>
    </feature:roads2>
  </wfs:Insert>
</wfs:Transaction>
';

$geoserver->executeWFSTransaction($WFSTRequest);

リスト 4 では、座標投影が srsName XML 属性に指定された内容と一致していることに注意してください。

スタイルの作成および割り当て

WFS レイヤーは、クライアント・サイドでスタイル設定されるのが通常です。この場合のスタイル設定は、JavaScript で OpenLayers を使用して行われます。一方、WMS レイヤーはサーバー上で生成される画像であり、WMS レイヤーのレンダリング方法はスタイル定義によって決まります。スタイルを定義するには、SLD (Styled Layer Descriptor) 表記を使用します。SLD は、多数のオプション (例えば、さまざまな属性範囲と値) に基づいて色を設定するための XML ベースのフォーマットです。GeoServer は、名前を付けてこれらのスタイルを格納するため、1 つのスタイルを保存すれば、将来そのスタイルを再利用することができます。SLD は、例から学ぶのが一番です。すぐに使用できるさまざまな例については、「参考文献」にリンクが記載されている「SLD Cookbook」を参照してください。

API ラッパーには、スタイルを一覧表示、作成、削除する関数だけでなく、スタイルをレイヤーに割り当てる関数も用意されています。1 つのレイヤーに複数のスタイルを割り当てることができます。スタイルが複数ある場合、リスト 5 の OpenLayers WMS の例に示されているように、使用するスタイルを WMS リクエストで指定することができます。

リスト 5. OpenLayers を使用して WMS レイヤーから特定のスタイルをリクエストする
map.addLayer(
  new OpenLayers.Layer.WMS(
    // You can again use the "PHP Proxy" here if needed.
    "test_workspace:roads2", "http://geosrvr.chrismichaelis.com/geoserver/roads2/wms",
    {
      LAYERS: 'test_workspace:roads2',
      STYLES: 'simple_roads'.
      tiled: true
    },
    {
      buffer: 0,
      displayOutsideMaxExtent: true,
      isBaseLayer: true,
      yx : {'EPSG:4326' : true}
    } 
  )
);

まとめ

平凡なデータ管理コードの必要性を軽減すると同時に、包括的な WMS および WFS-T サーバーを手に入れる絶好の方法は、Web アプリケーションに GeoServer を統合することです。皆さんそれぞれの必要に応じて、この記事に記載した例および概説した手法を遠慮なく使用してください。


ダウンロード

内容ファイル名サイズ
Geoserver PHP API wrapper and testerGeoserverWrapperAPIandTester.zip6KB

参考文献

学ぶために

  • GIS 101」: GIS の基礎を学ぶには、GIS Lounge に用意されているこのチュートリアルに目を通してください。
  • XML Basics」: XML の概念について概要を理解するには、このチュートリアルを読んでください。
  • OpenLayers を使用してデータを統合する」(Christopher Michaelis 著、developerWorks、2011年2月): OpenLayers の概要を説明しているこの記事を読んで、OpenLayers を導入してください。
  • Jetty: スタンドアロンの GeoServer ディストリビューションに組み込まれた、小さくて軽量のサーブレット・コンテナー、Jetty を試してみてください。
  • Create a spatially-enabled database」: 初めて PostGIS データベースを作成する際の明瞭でわかりやすいガイドとして、この PostGIS のドキュメントをよく読んでください。
  • Loading GIS Data」: この PostGIS のドキュメントを読んで、GIS データを新しい空間データベースにインポートする方法を学んでください。
  • GEOSS の「Transactional WFS」チュートリアル: このチュートリアルを読んで、WFS を使い始めてください (ただし、最上のチュートリアルは、実際に試してみることです)。
  • SLD Cookbook: すぐに使用できるスタイルの例を探してください。
  • GeoServer REST configuration API reference: GeoServer API を扱う際には、この非常に有益なリファレンスをよく調べてください。
  • developerWorks の Open source ゾーン: オープンソース・テクノロジーを使って開発する際や、IBM 製品でオープンソース・テクノロジーを使用する際に役立つ広範な、ハウツー情報、ツール、プロジェクトの更新情報などを見つけてください。
  • 初心者向けの製品のインストールとセットアップから、熟練開発者向けの高度な機能に至るまで、さまざまに揃った developerWorks オンデマンド・デモを見てください。
  • Twitter で developerWorks をフォローしてください。

製品や技術を入手するために

  • GeoServer 安定版のダウンロード: GeoServer およびオプションの拡張機能をダウンロードしてください。
  • Apache Tomcat: GeoServer を実行する最適な方法として、Tomcat サーブレット・コンテナーを試してみてください。
  • ご自分に最適な方法で IBM 製品を評価してください。評価の方法としては、製品の試用版をダウンロードすることも、オンラインで製品を試してみることも、クラウド環境で製品を使用することもできます。また、SOA Sandbox では、数時間でサービス指向アーキテクチャーの実装方法を効率的に学ぶことができます。

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source, Web development
ArticleID=935161
ArticleTitle=GeoServer とその REST API を導入する
publish-date=06272013