2009年10月19日月曜日

OpenLayers 21b OpenLayers を使った FeatureServer のデモ

最初に確認することは、scribble レイヤにアクセスし gml を取得するため、次の様にタイプします:

http://localhost/featureserver112/featureserver.cgi/scribble/all.gml

まだデモアプリケーションを使用しない限り、空の WFS:FeatureCollectionツリーが取得されます。

次に、featureserver-1.12 にある index.html ファイルをみてください。

http://localhost/featureserver112/

次のようなエラーメッセージ

Your browser does not support vector rendering. Currently supported renderers are:
SVG
VML



が表示された場合は featureserver-1.12/index.html の次のコードを修正してください。

---
<!--
<script src="http://openlayers.org/api/2.5-rc5/OpenLayers.js"></script>
-->
<script src="http://openlayers.org/api/2.8/OpenLayers.js"></script>
---

ベクトル図をいくつか追加してから再度レイヤのGML(またはJSONまたはGeoJSONまたはatomまたは他のすべてのもの)を取得することを試します。

http://localhost/featureserver112/featureserver.cgi/scribble/all.gml

上記の例では、データのある WFS:FeatureCollection ツリーが取得されます。
上記 URL の gml(format) の部分を JSON など他の形式に変えると出力されるデータの形式が変わります。
all(id)の部分は feature の id を指定します。all は feature がすべて出力されます。
URL をクエリパラメタでフィルタができます。
詳しくは、featureserver-1.12/doc/Querying.txt を参照してください。

FeatureServer はデモのデータを curl を使って編集できます。

curl は、各種プロトコルを使用しているサーバからファイルを取得するためのクライアントプログラムです。コマンドは、ユーザがマシンと一切対話しなくても済むように設計されています。 (Debian curl パッケージサイトから引用。)

Synaptic パッケージマネージャでインストールします。

フィーチャ(id = 2)を削除し、再度挿入してみます。

削除する前に、JSONにフィーチャを保存します(ブラウザのアドレスに入力):

http://localhost/featureserver112/featureserver.cgi/scribble/2.json

表示されたデータを "2.json" というファイル名でホームディレクトリに保存します。
削除します:

user@debian:~$ curl -X DELETE http://localhost/featureserver112/featureserver.cgi/scribble/2.json
{"features": []}

FeatureServer Demo ページの 「GML」や「Edit JSON」リンクをクリックして削除されていることを確認します。
ブラウザの「戻る」ボタンで Demo ページに戻ります。

再挿入します:

user@debian:~$ curl -d @2.json http://localhost/featureserver112/featureserver.cgi/scribble/create.json
{"features": [{"geometry": {"type": "Polygon", "coordinates": [[[17.578125, 54.4921875], [-5.625, 21.4453125], [35.15625, 16.5234375], [17.578125, 54.4921875]]]}, "id": 5, "properties": {"strokeColor": "red", "title": "Feature 4", "author": "Your Name Here"}}]}

0 件のコメント: