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 | |
---|