Version 3 (modified by djay, 14 years ago) |
---|
Exercise
You know everything now about writting zcfg matadata files and get short pieces of code in service.c or ogr_service_provider.py depending if you choosen C or Python programming language respectively.
The goal of this exercise is to implement the following multiple geometries services :
- Intersection
- Union
- Difference
- SymDifference
C version
Your are now invited to edit the source.c file you have created during this workshop to add the multiple geometries, using the following OGR C-API functions :
- OGR_G_Intersection(OGRGeometryH, OGRGeometryH)
- OGR_G_Union(OGRGeometryH, OGRGeometryH)
- OGR_G_Difference(OGRGeometryH, OGRGeometryH)
- OGR_G_SymmetricDifference(OGRGeometryH, OGRGeometryH)
You can use the Boundary.zcfg file as example, rename the InputPolygon input to InputEntity1 and add a similar input named IntputEntity2. You are invited to update other values in the ZOO Metadata File to set the proper metadata informations.
Python Version
Your are invited to edit the ogr_ws_service_provider.py file you created during this workshop to add the multiple geometries using the following osgeo.ogr Geometry methods applied on the first Geometry instance :
- Intersection(Geometry)
- Union(Geometry)
- Difference(Geometry)
- SymmetricDifference?(Geometry)
You can once again use the Boundary.zcfg file as example, rename the InputPolygon? input to InputEntity1 and add a similar input named IntputEntity2. You are invited to update other values in the ZOO metadata file to set the proper metadata informations.
Testing your services
Once the multiple geometries Services are deployed on your local environment, please reload the zoo-ogr.html created during the previous section from your browser and test your brand new ZOO Services.