[686] | 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 | |
---|