Ignore:
Timestamp:
Mar 21, 2019, 4:14:14 PM (5 years ago)
Author:
djay
Message:

Add information abouut semaphore status for future deletion. Make sure to store on disk inputs passed by reference in case no specific memory=load has been set in the [main] section. Fix ticket #170. Add support for publishing raster applying a style definition found in the metadata (zcfg or database).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/prototype-v0/zoo-project/zoo-kernel/service_internal_ms.c

    r890 r897  
    403403    extent=getMapArray(tmpI->content,options[proto][4],imyIndex);
    404404    memset(webService_url,0,strlen(webService_url));
    405     freeMap(&rformat);
     405     freeMap(&rformat);
    406406    free(rformat);
    407407    rformat=createMap("value","image/tiff");
     
    578578 
    579579    if(test!=NULL){
    580       sprintf(tmpExtent,"%.3f,%.3f,%.3f,%.3f",min.y,min.x,max.y,max.x);
     580      sprintf(tmpExtent,"%.15f,%.15f,%.15f,%.15f",min.y,min.x,max.y,max.x);
    581581      map* isGeo=getMapArray(output->content,"crs_isGeographic",imyIndex);
    582582#ifdef DEBUGMS
     
    584584#endif
    585585      if(isGeo!=NULL && strcasecmp("true",isGeo->value)==0){
    586         sprintf(tmpExtent,"%.3f,%.3f,%.3f,%.3f",min.y,min.x,max.y,max.x);
     586        sprintf(tmpExtent,"%.15f,%.15f,%.15f,%.15f",min.y,min.x,max.y,max.x);
    587587        setMapArray(output->content,"wgs84_extent",imyIndex,tmpExtent);
    588         sprintf(tmpExtent,"%f,%f,%f,%f", minY,minX, maxY, maxX);
     588        sprintf(tmpExtent,"%.15f,%.15f,%.15f,%.15f", minY,minX, maxY, maxX);
    589589      }else{
    590         sprintf(tmpExtent,"%.3f,%.3f,%.3f,%.3f",min.x,min.y,max.x,max.y);
     590        sprintf(tmpExtent,"%.15f,%.15f,%.15f,%.15f",min.x,min.y,max.x,max.y);
    591591        setMapArray(output->content,"wgs84_extent",imyIndex,tmpExtent);
    592592      }
    593593      setMapArray(output->content,"wms_extent",imyIndex,tmpExtent);
    594       sprintf(tmpSrsStr,"%.3f,%.3f,%.3f,%.3f",min.x,min.y,max.x,max.y);
     594      sprintf(tmpSrsStr,"%.15f,%.15f,%.15f,%.15f",min.x,min.y,max.x,max.y);
    595595      setMapArray(output->content,"wcs_extent",imyIndex,tmpExtent);
    596596    }else{
    597       sprintf(tmpExtent,"%.3f,%.3f,%.3f,%.3f",min.x,min.y,max.x,max.y);
     597      sprintf(tmpExtent,"%.15f,%.15f,%.15f,%.15f",min.x,min.y,max.x,max.y);
    598598      setMapArray(output->content,"wgs84_extent",imyIndex,tmpExtent);
    599       sprintf(tmpExtent,"%f,%f,%f,%f",minX, minY, maxX, maxY);
     599      sprintf(tmpExtent,"%.15f,%.15f,%.15f,%.15f",minX, minY, maxX, maxY);
    600600      map* isGeo=getMapArray(output->content,"crs_isGeographic",imyIndex);
    601601      if(isGeo!=NULL){
     
    604604#endif
    605605        if(isGeo!=NULL && strcasecmp("true",isGeo->value)==0)
    606           sprintf(tmpExtent,"%f,%f,%f,%f", minY,minX, maxY, maxX);
     606          sprintf(tmpExtent,"%.15f,%.15f,%.15f,%.15f", minY,minX, maxY, maxX);
    607607      }
    608608      setMapArray(output->content,"wms_extent",imyIndex,tmpExtent);
    609       sprintf(tmpExtent,"%.3f,%.3f,%.3f,%.3f",minX,minY,maxX,maxY);
     609      sprintf(tmpExtent,"%.15f,%.15f,%.15f,%.15f",minX,minY,maxX,maxY);
    610610      setMapArray(output->content,"wcs_extent",imyIndex,tmpExtent);
    611611    }
     
    754754  }
    755755
     756  setMapArray(output->content,"gdalType",imyIndex,OGR_Dr_GetName(OGR_DS_GetDriver(poDS))); 
    756757  setMapArray(output->content,"geodatatype",imyIndex,"vector");
    757758  int iLayer = 0;
     
    963964  int imyIndex=getPublishedId(output);
    964965  map* tmpMap=getMapArray(output->content,"storage",imyIndex);
     966  map* styleMap=getMap(output->content,"msStyle");
    965967  char *pszFilename=tmpMap->value;
    966968  GDALDatasetH hDataset;
     
    11121114    msInsertHashTable(&(myLayer->metadata), "ows_bandcount", nBands);
    11131115  }
    1114   if(nBandsI>=3)
    1115     if(nBandsI==4)
    1116       msLayerAddProcessing(myLayer,"BANDS=1,2,3,4");
     1116  if(styleMap==NULL || strstr(styleMap->value,"BANDS=")==NULL){
     1117    if(nBandsI>=3)
     1118      if(nBandsI==4)
     1119        msLayerAddProcessing(myLayer,"BANDS=1,2,3,4");
     1120      else
     1121        msLayerAddProcessing(myLayer,"BANDS=1,2,3");
     1122    else if(nBandsI>=2)
     1123      msLayerAddProcessing(myLayer,"BANDS=1,2");
    11171124    else
    1118       msLayerAddProcessing(myLayer,"BANDS=1,2,3");
    1119   else if(nBandsI>=2)
    1120     msLayerAddProcessing(myLayer,"BANDS=1,2");
    1121   else
    1122     msLayerAddProcessing(myLayer,"BANDS=1");
    1123  
     1125      msLayerAddProcessing(myLayer,"BANDS=1");
     1126  }
    11241127
    11251128  /**
     
    11621165      char tmpMm[100],tmpMp[100];
    11631166      sprintf(tmpMm,"%.3f %.3f",pdfMin,pdfMax);
    1164       if(pdfMin!=pdfMax)
    1165         sprintf(tmpMp,"SCALE_%d=%.3f,%.3f",iBand+1,pdfMean-(2*pdfStdDev),pdfMean+(2*pdfStdDev));
    1166       /*else
    1167         sprintf(tmpMp,"SCALE_%d=%.3f,%.3f",iBand+1,pdfMin,pdfMax);*/
     1167      if(pdfMin!=pdfMax && (styleMap==NULL || strstr(styleMap->value,"SCALE_")==NULL)){
     1168        sprintf(tmpNb,"%d",iBand+1);
     1169        if(styleMap==NULL || strstr(styleMap->value,"BANDS=")==NULL || strstr(strstr(styleMap->value,"BANDS="),tmpNb)!=NULL){
     1170          if(pdfMean-(2*pdfStdDev)<0)
     1171            sprintf(tmpMp,"SCALE_%d=%.3f,%.3f",iBand+1,0.0,pdfMean+(2*pdfStdDev));
     1172          else
     1173            sprintf(tmpMp,"SCALE_%d=%.3f,%.3f",iBand+1,pdfMean-(2*pdfStdDev),pdfMean+(2*pdfStdDev));
     1174          msLayerAddProcessing(myLayer,tmpMp);
     1175        }
     1176      }
    11681177      char tmpI[31];     
    11691178      sprintf(tmpI,"%s_interval",tmpN);
    11701179      msInsertHashTable(&(myLayer->metadata), tmpI, tmpMm);
    1171       //if(pdfMax>255)
    1172       msLayerAddProcessing(myLayer,tmpMp);
    11731180      map* test=getMap(output->content,"msClassify");
    11741181      if(test!=NULL && strncasecmp(test->value,"true",4)==0){
     
    12551262
    12561263  }
    1257   msLayerAddProcessing(myLayer,"RESAMPLE=BILINEAR");
    1258 
     1264  if(styleMap==NULL || strstr(styleMap->value,"RESAMPLE")==NULL)
     1265    msLayerAddProcessing(myLayer,"RESAMPLE=BILINEAR");
     1266 
     1267  if(styleMap!=NULL && strlen(styleMap->value)>9){
     1268    msUpdateLayerFromString(myLayer,styleMap->value,MS_FALSE);
     1269  }
     1270 
    12591271  m->layerorder[m->numlayers] = m->numlayers;
    12601272  m->numlayers++;
     
    12781290  int imyIndex=getPublishedId(outputs);
    12791291  map* mime=getMapArray(outputs->content,"mimeType",imyIndex);
     1292  map* msUrl=getMapFromMaps(conf,"main","mapserverAddress");
     1293  map* dataPath=getMapFromMaps(conf,"main","dataPath");
    12801294  char *ext="data";
    12811295  if(mime!=NULL)
     
    14821496  free(correspondance);
    14831497
     1498  map* sid=getMapFromMaps(conf,"lenv","usid");
     1499  char *mapPath=
     1500    (char*)malloc((14+strlen(sid->value)+strlen(outputs->name)+strlen(dataPath->value))*sizeof(char));
     1501  sprintf(mapPath,"%s/%s_%d_%s.map",dataPath->value,outputs->name,imyIndex,sid->value);
     1502  char *mapUrl=
     1503    (char*)malloc((6+strlen(mapPath)+strlen(msUrl->value))*sizeof(char));
     1504  sprintf(mapUrl,"%s?map=%s",msUrl->value,mapPath);
     1505
     1506  if (msInsertHashTable(&(myMap->web.metadata), "ows_onlineresource", mapUrl) == NULL){
     1507#ifdef DEBUGMS
     1508    fprintf(stderr,"Unable to add metadata");
     1509#endif
     1510    return;
     1511  }
    14841512
    14851513  if(tryOgr(conf,outputs,myMap)<0)
     
    14871515      return ;
    14881516
    1489   tmp1=getMapFromMaps(conf,"main","dataPath");
    1490   char *tmpPath=(char*)malloc((13+strlen(tmp1->value))*sizeof(char));
    1491   sprintf(tmpPath,"%s/symbols.sym",tmp1->value);
     1517  char *tmpPath=(char*)malloc((13+strlen(dataPath->value))*sizeof(char));
     1518  sprintf(tmpPath,"%s/symbols.sym",dataPath->value);
    14921519  msInitSymbolSet(&myMap->symbolset);
    14931520  myMap->symbolset.filename=zStrdup(tmpPath);
    14941521  free(tmpPath);
    14951522
    1496   map* sid=getMapFromMaps(conf,"lenv","usid");
    1497   char *mapPath=
    1498     (char*)malloc((14+strlen(sid->value)+strlen(outputs->name)+strlen(tmp1->value))*sizeof(char));
    1499   sprintf(mapPath,"%s/%s_%d_%s.map",tmp1->value,outputs->name,imyIndex,sid->value);
    15001523  msSaveMap(myMap,mapPath);
    15011524  saveMapNames(conf,outputs,mapPath);
Note: See TracChangeset for help on using the changeset viewer.

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