演習
以上で、zcfg メタデータファイルの記述方法と、 C言語またはPython言語の選択によって、service.c または ogr_service_provider.py の短いコードが得られました。 この演習のゴールは、次のような複合ジオメトリサービスを実装することです :
- Intersection
- Union
- Difference
- SymDifference
C バージョン
source.c ファイルの編集を選択された方は、このワークショップ演習を通して、追加した複合ジオメトリは、次のOGR C-API 関数を使用しています:
- OGR_G_Intersection(OGRGeometryH, OGRGeometryH)
- OGR_G_Union(OGRGeometryH, OGRGeometryH)
- OGR_G_Difference(OGRGeometryH, OGRGeometryH)
- OGR_G_SymmetricDifference(OGRGeometryH, OGRGeometryH)
Boundary.zcfg ファイルを例に、 InputPolygon を InputEntity1 にして、同様に IntputEntity2 を追加することができます。ZOOメタデータファイルのそのほかの値についても、適当なメタデータ情報を設定してください。
Python バージョン
ogr_ws_service_provider.py ファイルの編集を選択された方は、このワークショップ演習を通して、追加した複合ジオメトリは、次の Geometry インスタンスに適用された osgeo.ogr Geometry 関数を使用しています:
- Intersection(Geometry)
- Union(Geometry)
- Difference(Geometry)
- SymmetricDifference(Geometry)
Boundary.zcfg ファイルを例に、 InputPolygon を InputEntity1 にして、同様に IntputEntity2 を追加することができます。ZOOメタデータファイルのそのほかの値についても、適当なメタデータ情報を設定してください。
サービスのテスト
ここで、複合ジオメトリサービスは、ローカル環境の上に配置されました。ブラウザ上から、前のセクションで作成した zoo-ogr.html をリロードしてください。そして新しいZOOサービスをテストしてください。
ワークショップ 目次