Changes between Version 44 and Version 45 of ZooWorkshop/FOSS4GJapan/CreatingOGRBasedWebServices


Ignore:
Timestamp:
Oct 16, 2010, 1:32:56 AM (9 years ago)
Author:
djay
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ZooWorkshop/FOSS4GJapan/CreatingOGRBasedWebServices

    v44 v45  
    643643}}}
    644644
    645 This new code is exactly the same as for the Boundary Service. The only thing we modified is the line where the [http://www.gdal.org/ogr/ogr__api_8h.html#7a93026cfae8ee6ce25546dba1b2df7d OGR_G_ConvexHull] function is called (rather than the OGR_G_GetBoundary you used before). It is better to not copy and paste the whole function and find a more generic way to define your new Services as the function body will be the same in every case. The following generic function is proposed to make things simpler :
     645This new code is exactly the same as for the Boundary Service. The only thing we modified is the line where the [http://www.gdal.org/ogr/ogr__api_8h.html#7a93026cfae8ee6ce25546dba1b2df7d OGR_G_ConvexHull] function is called (rather than the {{{OGR_G_GetBoundary}}} you used before). It is better to not copy and paste the whole function and find a more generic way to define your new Services as the function body will be the same in every case. The following generic function is proposed to make things simpler :
    646646
    647647{{{
     
    673673}}}
    674674
    675 Then, a function pointer called myFunc rather than the full function name can be used. This way we can re- implement our Boundary Service this way :
     675Then, a function pointer called {{{myFunc}}} rather than the full function name can be used. This way we can re-implement our Boundary Service this way :
    676676
    677677{{{
     
    682682}}}
    683683
    684 Using this applyOne local function defined in the service.c source code, we can define other Services this way :
     684Using this {{{applyOne}}} local function defined in the {{{service.c}}} source code, we can define other Services this way :
    685685
    686686{{{
     
    694694}}}
    695695
    696 The genericity of the applyOne function let you add two new Services in your ZOO Services Provider : !ConvexHull and Centroid.
     696The genericity of the {{{applyOne}}} function let you add two new Services in your ZOO Services Provider : !ConvexHull and Centroid.
    697697
    698698Note that you should define {{{MY_OGR_Centroid}}} function before the Centroid one as [http://www.gdal.org/ogr/ogr__api_8h.html#23f5a19a81628af7f9cc59a37378cb2b OGR_G_Centroid] don't return a geometry object but set the value to an already existing one and support only Polygon as input, so to ensure we use the !ConvexHull for MultiPolygon. So please use the code bellow :
     
    712712}}}
    713713
    714 To deploy your Services, you only have to copy the Boundary.zcfg metadata file from your cgi-env directory as {{{ConvexHull.zcfg}}} and {{{Centroid.zcfg}}}. Then, you must rename the Service name on the first line to be able to run and test the {{{Execute}}} request in the same way you did before. You only have to set the Identifier value to !ConvexHull or Centroid in your request depending on the Service you want to run.
    715 
    716 Note here that the !GetCapabilities and !DescribeProcess requests will return odd results as we didn't modified any metadata informations, you can edit the .zcfg files to set correct values. By the way it can be used for testing purpose, as the input and output get the same name and default/supported formats.
     714To deploy your Services, you only have to copy the {{{Boundary.zcfg}}} metadata file from your cgi-env directory as {{{ConvexHull.zcfg}}} and {{{Centroid.zcfg}}}. Then, you must rename the Service name on the first line to be able to run and test the {{{Execute}}} request in the same way you did before. You only have to set the Identifier value to !ConvexHull or Centroid in your request depending on the Service you want to run.
     715
     716Note here that the {{{GetCapabilities}}} and {{{DescribeProcess}}} requests will return odd results as we didn't modified any metadata informations, you can edit the .zcfg files to set correct values. By the way it can be used for testing purpose, as the input and output get the same name and default/supported formats.
    717717
    718718==== Python Version ====

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png