[Freegis-list] Open Source GIS WebServices

Pedro Pereira Goncalves pedro at inovagis.org
Mon Feb 4 16:20:21 CET 2002


Hi All,

We're starting the development of some open source web services using 
delphi 6 (compatible with Linux's Kylix)

The idea is to grab the OGC basic features and GML 2 specs and define basic 
types that will be available for remote computers using SOAP. This web 
service will work as a translation service between GML and the basic 
features directly accessible from your programming language.

In practical terms you are able to do something like (in this example 
Pascal is used but you could do it in JAVA, C#, VB, etc. with minor changes):

procedure TForm1.Button3Click(Sender: TObject);
var pp:TGeoAbstract;
     XStr:WideString;
begin
   pp:=TGeoBOX.Create;
   (pp as TGeoBOX).MaxX:=100;
   (pp as TGeoBOX).MinX:=0;
   (pp as TGeoBOX).MaxY:=100;
   (pp as TGeoBOX).MinY:=0;
   (pp as TGeoBOX).SRS:='ESPG:4326';
   // call to a remote SOAP service using HTTP
   xStr:=(HTTPRIO1 as IGIServerTypesFactory).CreateGML(pp,'gml');
{
and the xStr return will in fact be GML 2.0 like
<gml:Box srsName="ESPG:4326">
         <gml:Coord>
                 <gml:X>0</gml:X>
                 <gml:Y>0</gml:Y>
         </gml:Coord>
         <gml:Coord>
                 <gml:X>100</gml:X>
                 <gml:Y>100</gml:Y>
         </gml:Coord>
</gml:Box>
}
end;

The other way around works the same
procedure TForm1.Button6Click(Sender: TObject);
var xStr:WideString;
     bb:TGeoBox;
begin
   Xstr:='<gml:Box 
srsName="ESPG:4326"><gml:Coord><gml:X>0</gml:X><gml:Y>0</gml:Y></gml:Coord><gml:Coord><gml:X>100</gml:X><gml:Y>100</gml:Y></gml:Coord></gml:Box>';

   // call to a remote SOAP service using HTTP
   bb:=(HTTPRIO1 as IGIServerTypesFactory).GMLCreateGeoBOX(xStr,'gml');

{ this will return a TGeoBox type that is defined by

   TGeoBOX = class(TGeoAbstract)
   private
     FMaxX: Double;
     FMaxY: Double;
     FMinX: Double;
     FMinY: Double;
   published
     property MaxX: Double read FMaxX write FMaxX;
     property MaxY: Double read FMaxY write FMaxY;
     property MinX: Double read FMinX write FMinX;
     property MinY: Double read FMinY write FMinY;
   end;
}
end;

For the moment I've developed the interfaces for Points, BOX, Lines, Rings 
and Polygons

Before releasing these web services as open source we'd like to know if 
anyone on this list is working on this or finds this useful or even if is 
available for comments and testing.

all the best

Pedro

Pedro
------------------------------------------
Pedro Pereira Goncalves
inovaGIS Project - http://www.inovagis.org/





More information about the Freegis-list mailing list

This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)