Index: trunk/zoo-services/ogr/base-vect-ops/cgi-env/Distance.zcfg
===================================================================
--- trunk/zoo-services/ogr/base-vect-ops/cgi-env/Distance.zcfg	(revision 54)
+++ trunk/zoo-services/ogr/base-vect-ops/cgi-env/Distance.zcfg	(revision 55)
@@ -1,5 +1,5 @@
 [Distance]
- Title = Calcul la distance entre deux entites geographique. 
- Abstract = Calcul de la distance entre deux entites geographique. 
+ Title = Compute the distance between two geometries
+ Abstract = Compute the distance between two geometries
  Profile = urn:ogc:wps:1.0.0:buffer
  processVersion = 2
Index: trunk/zoo-services/ogr/base-vect-ops/service.c
===================================================================
--- trunk/zoo-services/ogr/base-vect-ops/service.c	(revision 54)
+++ trunk/zoo-services/ogr/base-vect-ops/service.c	(revision 55)
@@ -393,4 +393,25 @@
     res=(*myFunc)(geometry1,geometry2);
     fprintf(stderr,"\nService internal print1\n");
+    
+    /* nuova parte */
+    map* tmp2=getMapFromMaps(outputs,"Result","mimeType");
+    if(strncmp(tmp2->value,"application/json",16)==0){
+      char *tmpS=OGR_G_ExportToJson(res);
+      setMapInMaps(outputs,"Result","value",tmpS);
+      setMapInMaps(outputs,"Result","mimeType","text/plain");
+      setMapInMaps(outputs,"Result","encoding","UTF-8");
+      free(tmpS);
+    }
+    else{
+      char *tmpS=OGR_G_ExportToGML(res);
+      setMapInMaps(outputs,"Result","value",tmpS);
+      setMapInMaps(outputs,"Result","mimeType","text/xml");
+      setMapInMaps(outputs,"Result","encoding","UTF-8");
+      setMapInMaps(outputs,"Result","schema","http://fooa/gml/3.1.0/polygon.xsd");
+      free(tmpS);
+    }
+    
+    /* vecchia da togliere */
+    /*
     char *tmpS=OGR_G_ExportToJson(res);
     setMapInMaps(outputs,"Result","value",tmpS);
@@ -398,4 +419,5 @@
     setMapInMaps(outputs,"Result","encoding","UTF-8");
     free(tmpS);
+    */
     OGR_G_DestroyGeometry(geometry1);
     OGR_G_DestroyGeometry(geometry2);
@@ -491,5 +513,5 @@
     res=OGR_G_Distance(geometry1,geometry2);    
     char tmpres[100];
-    sprintf(tmpres,"%d",res);
+    sprintf(tmpres,"%f",res);
     setMapInMaps(outputs,"Distance","value",tmpres);
     setMapInMaps(outputs,"Distance","dataType","float");
@@ -529,5 +551,5 @@
      */
     char tmp1[100];
-    sprintf(tmp1,"%d",res);
+    sprintf(tmp1,"%f",res);
     setMapInMaps(outputs,"Area","value",tmp1);
     setMapInMaps(outputs,"Area","dataType","float");
