pre-release version 0.9 (September, 2001)
© Pedro Pereira Gonçalves (pedro@inovagis.org)


Original File
Abstract This web page sumarizes the SOAP GIServer webservices available for testing.
Author Pedro Pereira Gonçalves (email)
Implements type TGeoPoint (view)
type TBBOX (view)
function ConvertCoord (view)
function ConvertCoordEx (view)
function LocateCountry (view)
function LocateCountryEx (view)
function FindCountryBBOX (view)
function FindCountryGMLBBOX (view)
Last Change
History 2002-01-24 : Function FindCountryGMLBBOX added
2002-01-21 : EPSG property changed its name to SRS
2002-01-18 : File Created
Index Page GIServer tutorial
Important Links: Service WSDL file
inovaGIS: Home Page and User Forum
Cartesia's GIServer Client : www.cartesia.org
SOAP: Specification
OpenGIS : Home Page and Specs

The web services presented here are an example of emerging standards such as SOAP that will enable a new generation of "web services" that allow systems to make remote procedure calls to other systems over the Internet.

The application fields for the GIServer web services is the Earth Science and Environmental Spatial Information Systems. At present, most of these applications data are accessed off-line and due to the complexity of product format, algorithms and processing, the service provided to the user community is far from being optimal. Each user community has their own data applications with different knowledge extraction from the same raw data for specific applications. With actors ranging from data providers, scientists, value adding industry and citizens, several issues of accessibility are raised due to different scientific, conceptual and technological backgrounds.

In effect, the key points in these applications data access are not only related to the raw data access per si, but in the system understanding of the user's final application and the added auxiliary services it might need. The same processing techniques or service might be used to achieve apparently different users objectives dependent only on the middleware applications available. These middleware applications will operate between the computing operating system and applications facilitating the collaborative work between the different actors.

With the development of these GIS Web Services we hope to contribute and develop a network of computers that will have the purpose of resource sharing among different actors in a flexible, secure and coordinated fashion. These actors might be individuals, institutions or resources with different conceptual models about the data and their inherent processing. In fact, the objective of this technology is to be used in terms of network, distributed computing power and collaborative environment that supports the final user community in their own applications.

For the moment are available two simple types and four web Services using geographic information:
  • TGeoPoint : Defines a geographic point (X,Y) in a given Spatial Reference System defined as EPSG code (view)

  • TBBox : Defines the geographic box bouding a given feature in the corresponding Spatial Reference System defined as EPSG code. This type will be used for future query and search methods.(view)

  • ConvertCoord : Converts between datums and projections a geographic point using the EPSG projection definition. (view)

  • ConvertCoordEx : Converts between datums and projections a geographic point using the EPSG projection definition. It uses the TGeoPoint data type for input parameter and output result. (view)

  • LocateCountry : Given a decimal lat and long point gives the corresponding country name where it falls. (view)

  • LocateCountryEx : Given a geographic point defined as TGeoPoint in a given Spatial Reference Systems it locates the corresponding country name where it falls.(view)

  • FindCountryBBOX : Given a country name it finds the first match and returns the bounding box defined by the geographic boundaries of that country (the values returned are in decimal longitude and latitude). (view)

  • FindCountryGMLBBOX : Given a country name it finds the first match and returns the bounding box defined by the geographic boundaries of that country (the values returned are in decimal longitude and latitude) as a string coded as a GML 2.0 (Geography Markup Language) file. (view)
The Service's WSDL is available at :
http://inovagis.dcea.fct.unl.pt/services/GIServerWS.exe/wsdl/IGIServer


Tomás de Sevilla from cartesia.org build a PHP client for this WebService available at www.cartesia.org (in spanish)

Other services being developed at this moment are the implementation of the OpenGIS Simple Features Specification and the methods GetCapabilities and GetFeature from OpengGIS Web Map Service Implementation Specification (version 1.1.1). Further developments will be posted at the inovaGIS, xmethods web sites and at the comp.infosystems.gis newsgroup

Note: SOAP (Simple Object Access Protocol) is a standard lightweight protocol for exchanging information in a decentralized, distributed environment. It uses XML to encode remote procedure calls and typically uses HTTP as a communications protocol. For more information about SOAP, see the SOAP specification available at http://www.w3.org/TR/SOAP/




  • TGeoPoint
    Defines a geographic point (X,Y) in a given Spatial Reference System defined as EPSG code (check out the EPSG codes available and note that for decimal Longitude and Latitude the code is EPSG:4326).

    XML Schema defintion :
    <xs:complexType name="TGeoPoint">
        <xs:sequence>
           <xs:element name="X" type="xs:double" />
           <xs:element name="Y" type="xs:double" />
           <xs:element name="SRS" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    [top]



  • TBBOX
    Defines the geographic box bouding a given feature in the corresponding Spatial Reference System defined as EPSG code (check out the EPSG codes available and note that for decimal Longitude and Latitude the code is EPSG:4326). This type will be used for future query and search methods.

    XML Schema defintion :
    <xs:complexType name="TBBOX">
        <xs:sequence>
           <xs:element name="MaxX" type="xs:double" />
           <xs:element name="MaxY" type="xs:double" />
           <xs:element name="MinX" type="xs:double" />
           <xs:element name="MinY" type="xs:double" />
           <xs:element name="SRS" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    [top]



  • ConvertCoord
    Converts between datums and projections a geographic point using the EPSG projection definition (check out the EPSG codes available and note that for decimal Longitude and Latitude the code is EPSG:4326)

    Interface : function ConvertCoord(PosX,PosY:Double;SRS,OutSRS:String): string;

    SOAP Request example:

    <?xml version="1.0" encoding='UTF-8'?>
       <SOAP-ENV:Envelope
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Body>
       <NS1:ConvertCoord xmlns:NS1="urn:GIServer"
       SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          <PosX xsi:type="xsd:double">-7</PosX>
          <PosY xsi:type="xsd:double">38</PosY>
          <SRS xsi:type="xsd:string">EPSG:4326</SRS>
          <OutSRS xsi:type="xsd:string">EPSG:32629</OutSRS>
       </NS1:ConvertCoord>
       </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>


    SOAP Response example:

    <?xml version="1.0" encoding='UTF-8'?>    <SOAP-ENV:Envelope
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Body>
       <NS1:ConvertCoordResponse xmlns:NS1="urn:GIServer"
       SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          <return xsi:type="xsd:string">675603.370796952, 4207702.36732002</return>
       </NS1:ConvertCoordResponse>
       </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>
    [top]



  • ConvertCoordEx
    Converts between datums and projections a geographic point using the EPSG projection definition (check out the EPSG codes available and note that for decimal Longitude and Latitude the code is EPSG:4326). It uses the TGeoPoint data type for input parameter and output result.

    Interface : function ConvertCoordEx(Point: TGeoPoint;OutSRS:String): TGeoPoint;

    SOAP Request example:

    <?xml version="1.0" encoding='UTF-8'?>
       <SOAP-ENV:Envelope
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Body>
          <NS1:ConvertCoordEx xmlns:NS1="urn:GIServer"
          SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
           xmlns:NS2="urn:GIServerTypes">
             <NS1:Point href="#1"/>
                <OutSRS xsi:type="xsd:string">SHGM</OutSRS>
                <NS2:Point id="1" xsi:type="NS2:TGeoPoint">
                   <X xsi:type="xsd:double">-7</X>
                   <Y xsi:type="xsd:double">38</Y>
                   <SRS xsi:type="xsd:string">EPSG:4326</SRS>
                </NS2:Point>
             </NS1:ConvertCoordEx>
       </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>


    SOAP Response example:

    <?xml version="1.0" encoding='UTF-8'?>
       <SOAP-ENV:Envelope    <xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       <xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       <xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       <xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Body>
          <NS1:ConvertCoordExResponse
          xmlns:NS1="urn:GIServer"
          <SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xmlns:NS2="urn:GIServerTypes">
          <NS1:return href="#1"/>
             <NS2:return id="1" xsi:type="NS2:TGeoPoint">
                <X xsi:type="xsd:double">299524.565474362</X>
                <Y xsi:type="xsd:double">115405.584505953</Y>
                <SRS xsi:type="xsd:string">SHGM</SRS>
             </NS2:return>
          </NS1:ConvertCoordExResponse>
       </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>
    [top]



  • LocateCountry
    Given a decimal lat and long point gives the corresponding country name where it falls.

    Interface : function LocateCountry(PosX,PosY:Double):String;

    SOAP Request example:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
       <SOAP-ENV:Envelope
       SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
          <SOAP-ENV:Body>
             <m:LocateCountry xmlns:m="uri:IGIServerservice">
                <PosX>-7</PosX>
                <PosY>38</PosY>
             </m:LocateCountry>
          </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>


    SOAP Response example:

    <?xml version="1.0" encoding='UTF-8'?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Body>
          <NS1:LocateCountryResponse xmlns:NS1="urn:GIServer"
          SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
             <return xsi:type="xsd:string">Portugal</return>
          </NS1:LocateCountryResponse>
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    [top]



  • LocateCountryEx
    Given a geographic point defined as TGeoPoint in a given Spatial Reference Systems (check out the EPSG codes available and note that for decimal Longitude and Latitude the code is EPSG:4326) it locates the corresponding country name where it falls.

    Interface : function LocateCountryEx(Point: TGeoPoint):String;

    SOAP Request example:

    <?xml version="1.0" encoding='UTF-8'?>
       <SOAP-ENV:Envelope
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Body>
          <NS1:LocateCountryEx xmlns:NS1="urn:GIServer"
          SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xmlns:NS2="urn:GIServerTypes">
          <NS1:Point href="#1"/>
          <NS2:Point id="1" xsi:type="NS2:TGeoPoint">
             <X xsi:type="xsd:double">10</X>
             <Y xsi:type="xsd:double">10</Y>
             <SRS xsi:type="xsd:string">EPSG:4326</SRS>
          </NS2:Point>
          </NS1:LocateCountryEx>
       </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>


    SOAP Response example:

    <?xml version="1.0" encoding='UTF-8'?>
       <SOAP-ENV:Envelope
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Body>
          <NS1:LocateCountryExResponse xmlns:NS1="urn:GIServer"
          SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
             <return xsi:type="xsd:string">Nigeria</return>
       </NS1:LocateCountryExResponse>
       </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>
    [top]



  • FindCountryBBOX
    Given a country name it finds the first match and returns the bounding box defined by the geographic boundaries of that country (the values returned are in decimal longitude and latitude).

    Interface : function FindCountryBBOX(CountryName: String):TBBox;

    SOAP Request example:

    <?xml version="1.0" encoding='UTF-8'?>
       <SOAP-ENV:Envelope
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Body>
       <NS1:FindCountryBBOX xmlns:NS1="urn:GIServer"
       SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          <CountryName xsi:type="xsd:string">nigeria</CountryName>
       </NS1:FindCountryBBOX>
       </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>


    SOAP Response example:

    <?xml version="1.0" encoding='UTF-8'?>
       <SOAP-ENV:Envelope    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Body>
       <NS1:FindCountryBBOXResponse
       xmlns:NS1="urn:GIServer"
       SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
       xmlns:NS2="urn:GIServerTypes">
          <NS1:return href="#1"/>
          <NS2:return id="1" xsi:type="NS2:TBBOX">
             <MaxX xsi:type="xsd:double">15.9772</MaxX>
             <MaxY xsi:type="xsd:double">23.496</MaxY>
             <MinX xsi:type="xsd:double">0.1665</MinX>
             <MinY xsi:type="xsd:double">11.6801</MinY>
             <SRS xsi:type="xsd:string">EPSG:4326</SRS>
          </NS2:return>
          </NS1:FindCountryBBOXResponse>
       </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>
    [top]



  • FindCountryGMLBBOX
    Given a country name it finds the first match and returns the bounding box defined by the geographic boundaries of that country (the values returned are in decimal longitude and latitude) as a string coded as a GML 2.0 (Geography Markup Language) file.

    Interface : function FindCountryBBOX(CountryName: String):TBBox;

    SOAP Request example:

    <?xml version="1.0" encoding='UTF-8'?>
       <SOAP-ENV:Envelope
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Body>       <NS1:FindCountryGMLBBOX xmlns:NS1="urn:GIServer"
          SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
             <CountryName xsi:type="xsd:string">nigeria</CountryName>
          </NS1:FindCountryGMLBBOX>
       </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>


    SOAP Response example:

    <?xml version="1.0" encoding='UTF-8'?>    <SOAP-ENV:Envelope
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Body>
          <NS1:FindCountryGMLBBOXResponse xmlns:NS1="urn:GIServer"
          SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          <return xsi:type="xsd:string">
             <?xml version="1.0" encoding='iso-8859-1'?>
             <LocationFolder xmlns:gml="http://www.opengis.net/gml">
             <gml:description>
                BBOX for "nigeria" feature - GIServer WebServices
             </gml:description>
             <gml:name/>
             <gml:boundedBy>
             <gml:Box srsName="EPSG:4326">
             <gml:coordinates>0.1665,11.6801 15.9772,23.496</gml:coordinates>
             </gml:Box>
             </gml:boundedBy>
          </LocationFolder>
          </return>
          </NS1:FindCountryGMLBBOXResponse>
       </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>

[top]



This is a old historical version of the inovaGIS site For updated info about GIServer please go to http://giserver.terradue.com/