| 1 | .. _exercise: |
|---|
| 2 | |
|---|
| 3 | Exercise |
|---|
| 4 | ######## |
|---|
| 5 | |
|---|
| 6 | You know everything now about writting zcfg matadata files and get short pieces |
|---|
| 7 | of code in ``service.c`` or ``ogr_service_provider.py`` depending if you choosen |
|---|
| 8 | C or Python programming language respectively. |
|---|
| 9 | |
|---|
| 10 | The goal of this exercise is to implement the following multiple geometries services : |
|---|
| 11 | |
|---|
| 12 | - Intersection |
|---|
| 13 | - Union |
|---|
| 14 | - Difference |
|---|
| 15 | - SymDifference |
|---|
| 16 | |
|---|
| 17 | C version |
|---|
| 18 | ********* |
|---|
| 19 | |
|---|
| 20 | Your are now invited to edit the source.c file you have created during this workshop |
|---|
| 21 | to add the multiple geometries, using the following OGR C-API functions : |
|---|
| 22 | |
|---|
| 23 | - `OGR_G_Intersection <http://www.gdal.org/ogr/ogr__api_8h.html#5a271b5c7b72994120e7a6bbc7e7e5cb>`__ (OGRGeometryH, OGRGeometryH) |
|---|
| 24 | - `OGR_G_Union <http://www.gdal.org/ogr/ogr__api_8h.html#5a271b5c7b72994120e7a6bbc7e7e5cb>`__ (OGRGeometryH, OGRGeometryH) |
|---|
| 25 | - `OGR_G_Difference <http://www.gdal.org/ogr/ogr__api_8h.html#497977bec6ecd9dade7a9694f776be64>`__ (OGRGeometryH, OGRGeometryH) |
|---|
| 26 | - `OGR_G_SymmetricDifference <http://www.gdal.org/ogr/ogr__api_8h.html#d6dacf495617a230c6f19950bc415f17>`__ (OGRGeometryH, OGRGeometryH) |
|---|
| 27 | |
|---|
| 28 | You can use the ``Boundary.zcfg`` file as example, rename the InputPolygon input |
|---|
| 29 | to ``InputEntity1`` and add a similar input named ``IntputEntity2``. You are |
|---|
| 30 | invited to update other values in the ZOO Metadata File to set the proper |
|---|
| 31 | metadata informations. |
|---|
| 32 | |
|---|
| 33 | Python Version |
|---|
| 34 | ************** |
|---|
| 35 | |
|---|
| 36 | Your are invited to edit the ``ogr_ws_service_provider.py`` file you created |
|---|
| 37 | during this workshop to add the multiple geometries using the following |
|---|
| 38 | ``osgeo.ogr`` Geometry methods applied on the first Geometry instance : |
|---|
| 39 | |
|---|
| 40 | - Intersection(Geometry) |
|---|
| 41 | - Union(Geometry) |
|---|
| 42 | - Difference(Geometry) |
|---|
| 43 | - SymmetricDifference(Geometry) |
|---|
| 44 | |
|---|
| 45 | You can once again use the ``Boundary.zcfg`` file as example, rename the ``InputPolygon`` |
|---|
| 46 | input to ``InputEntity1`` and add a similar input named ``IntputEntity2``. You are |
|---|
| 47 | invited to update other values in the ZOO metadata file to set the proper metadata |
|---|
| 48 | informations. |
|---|
| 49 | |
|---|
| 50 | Testing your services |
|---|
| 51 | ********************* |
|---|
| 52 | |
|---|
| 53 | Once the multiple geometries Services are deployed on your local environment, |
|---|
| 54 | please reload the ``zoo-ogr.html`` file created during the previous section |
|---|
| 55 | from your browser and test your brand new ZOO Services. |
|---|
| 56 | |
|---|