Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Mon 06 December 2010 22:29

geobrie
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 120

Problème de connexion ?

Bonjour,

Je poste ce petit message car je suis perdus. Depuis environ 6 mois je travail sur la mise en place de serveur dédié au web mapping. Aujourd'hui j'en suis à mon deuxième serveur, mais malheureusement il m'est impossible de le faire fonctionner correctement. Ça bloque au niveau de Mapserver/Openlayer. Je pensais avoir reproduit exactement les même manipulations mais malheureusement l'écran bleu persiste. Je pense avoir besoin d'aide pour identifier le problème car je suis complétement perdus !!!!.

Le premier serveur était sous debian avec postgreSQL 8.3/Postgis 1.3, la nouveau est sous Ubuntu avec PosgreSQL 8.4/Postgis 1.4. Je penses que c'est un problème de droit. Sous le server fonctionnel les mêmes couche avec les mêmes mapfil et les même script Openlayer, tout fonctionne correvctement. Je ne sais plus où chercher, pour information ma couche geosignal s'affiche donc je pense que ça doit venir de la connexion postgresql/postgis.

Voici mon Mapfil :

Code:

MAP
  NAME "DOC_MAP" 
  IMAGETYPE PNG24 
  EXTENT 519556 2384371 811130 2611375 
  SIZE 100 100
  UNITS meters  
  IMAGECOLOR 255 255 255
  IMAGEQUALITY 95

  FONTSET './fonts.txt'
  SYMBOLSET './symbols.txt'  
  
    WEB  
      IMAGEPATH "/var/www/site/htdocs/tmp/"
      IMAGEURL 'tmp/'

      # WMS server settings
        METADATA
          'wms_title'           "doc"
          'wms_onlineresource'  "http://www.site-db.fr/cgi-bin/mapserv?map=/var/www/site/htdocs/psg.map&"
          'wms_srs'             "EPSG:27582"
      
         "wfs_title"           "doc"
         "wfs_onlineresource"  "http://www.site-db.fr/cgi-bin/mapserv?map=/var/www/site/htdocs/psg.map&"
         "wfs_srs"             "EPSG:27582"
        END###### Fin de METADATA ######   
    END###### Fin de WEB######
    
    PROJECTION
        "init=epsg:27582"  
    END###### Fin de PROJECTION ######
    
    OUTPUTFORMAT
        NAME png
        DRIVER "GD/PNG"
        MIMETYPE "image/png"
        IMAGEMODE PC256
        EXTENSION "png"        
    END###### Fin de OUTPUTFORMAT ######

       
###### Layer 1 #######################
  LAYER
    NAME psg
    STATUS ON
    TYPE POINT
    DUMP TRUE
    
    CONNECTIONTYPE postgis
    CONNECTION "dbname='base' host=192.168.0.14 port=5432 user='user' password='pass' sslmode=disable"
    DATA "the_geom FROM doc"
    LABELITEM "foret"            
            METADATA
                ### WMS 
                "wms_title"    "doc"
                ### WFS 
                "wfs_title"    "doc" 
                "gml_featureid" "gid" 
                "gml_include_items" "all"
            END###### Fin de METADATA ######        
            
            
            CLASS
               NAME "psg" 
               LABEL
               COLOR  150 150 150
               OUTLINECOLOR 255 255 255
               FONT arial
               TYPE truetype
               SIZE 6
               ANGLE [MYANGLE]
               POSITION AUTO
               PARTIALS FALSE
               END

               STYLE
               SYMBOL "circle" 
               SIZE 7.0 
               OUTLINECOLOR 0 0 0
               COLOR 255 255 255
               END
            END
     END###### Fin de Layer 1 ######
END###### Fin de Map File  ######

Mon script :

Code:

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
            html, body {
                font: normal 12px verdana;
                margin: 0;
                padding: 0;
                border: 0 none;
                overflow: hidden;
                height: 100%;
                background-color:#d2d9df;
            }
            #header{                
                background:url(./img/GeoExt.png) no-repeat;
                margin : 0;
                background-color:#12395F;
                height : 100%;
                width :100%;
            }
            #header p{
                color : white;
                text-align : right;
                font-size: 1.2em;
                font-weight: bold;
                padding-right : 20px;        
                padding-top : 10px;            
            }
            #header a{
                color : white;
            }
</style> 
  <head> 
  <link rel="stylesheet" type="text/css" href="../ext-3.3.1/resources/css/ext-all.css"></link>
  <link rel="stylesheet" type="text/css" href="../GeoExt/resources/css/geoext-all-debug.css"></link>
  <link rel="stylesheet" type="text/css" href="../GeoExt/resources/css/popup.css"></link>  
  <link rel="stylesheet" type="text/css" href="./css/ext-carto.css"></link>
  <script type="text/javascript" src="../ext-3.3.1/adapter/ext/ext-base.js" ></script>
  <script type="text/javascript" src="../ext-3.3.1/ext-all.js"></script>
  <script type="text/javascript" src="../OpenLayers/lib/OpenLayers.js"></script>
  <script type="text/javascript" src="../GeoExt/lib/GeoExt.js"></script>
  <script type="text/javascript">
  

var map= new OpenLayers.Map('map');
var rowCliked = false;
Ext.QuickTips.init();
Ext.onReady(function() {
          
        var geosignal = new OpenLayers.Layer.WMS( "geosignal", 
            "http://www.geosignal.org/cgi-bin/wmsmap?",
             {layers: 'RASTER1000k', }
);

        var style = new OpenLayers.Style({
                strokeColor: "green", 
                strokeWidth: 2, 
                strokeOpacity: 0.5,
                fillColor : "red",
                pointRadius : 5
        });
        
       var StyleMap = new OpenLayers.StyleMap({'default': style});
       
       var doc = new OpenLayers.Layer.WFS( "doc", 
            "http://192.168.0.14/cgi-bin/mapserv?map=/var/www/site/htdocs/doc.map&",
             {typename: 'doc'}, { extractAttributes: true, styleMap: StyleMap
});    
           

     // [1] - ZoomSlider 
       var zSlider = new GeoExt.ZoomSlider({
        vertical: true
        ,height: 110
        ,x: 18
        ,y: 85
        ,map: mapPanel
        ,plugins: new GeoExt.ZoomSliderTip({
            template: '<div>Zoom Level: <b>{zoom}</b></div>'
        })
    }); 
    
    
       //MapPanel 
         var mapPanel = new GeoExt.MapPanel({
          map : {
          maxExtent: new OpenLayers.Bounds(519556, 2384371, 811130, 2611375),
          projection: new OpenLayers.Projection("EPSG:27582"),
          displayProjection: new OpenLayers.Projection("EPSG:27582"),
          maxResolution: 400,
          numZoomLevels: 2,
          units: 'meters',
            controls: [
                new OpenLayers.Control.Navigation()
                ,new OpenLayers.Control.PanPanel()
                ,new OpenLayers.Control.ZoomPanel()
            ]
           ,allOverlays : false
        }
            ,region : 'center'
            ,title : 'Localisation des forets'
            ,layers : [geosignal,doc]
            ,items  : [zSlider]

         });  
         /* tree layer */
    var treeConfig = new OpenLayers.Format.JSON().write([
        {
            nodeType    : 'gx_baselayercontainer'
            ,expanded   : true
            ,allowDrag  : false
            ,allowDrop  : false
            ,draggable  : false
            ,icon       : './img/map.png'
        },{
            text        : 'Couches'
            ,icon       : './img/maps-stack.png'
            ,expanded   : true
            ,children   : [
                {
                    nodeType    : 'gx_layer'
                    ,draggable  : false
                    ,layer      : 'doc'
                    ,qtip       : "Villes"
                    ,icon       : './img/markers.png'
                }         
            ]
        }
    ], true);
   
    var layerTree = new Ext.tree.TreePanel({
        title       : "Couches(pour ouvrir cliquer ici)"
        ,root: {
            nodeType    : "async"
            ,expanded   : true
            ,children   : Ext.decode(treeConfig)
        }
        ,loader: new Ext.tree.TreeLoader({
            applyLoader: false
        })
        ,animate    : true
        ,enableDD   : true
        ,useArrows  : true        
        ,rootVisible: false
    });

    
     /* GRID */        
    // create feature store, binding it to the vector layer
    store = new GeoExt.data.FeatureStore({
        layer   : doc
        ,fields : [
            {name: 'gid', type: 'string'}
            ,{name: 'lieu', type: 'string'}
     ]
    });
    
    // create grid panel configured with feature store
    gridPanel = new Ext.grid.GridPanel({
        store: store
        ,columns : [{
            header : "doc"
            ,width : 30
            ,dataIndex : "gid"
        }, {
            header : "lieu"
            ,width : 100
            ,dataIndex : "lieu"
        }
            ]  
        ,sm: new GeoExt.grid.FeatureSelectionModel()       
    });
    
    var grid = new Ext.Panel({
        title   : 'Donn&eacute;es (pour ouvrir cliquer ici)'
        ,layout :'fit'
        ,items  : [gridPanel]
    });    
   
   doc.events.on({
            featureselected: function(e) {      
            if(typeof(popup) != "undefined"){
                popup.destroy();
            }
            var content = "<b>Doc :"+e.feature.attributes.gid+"</b><br /> Lieu : "+e.feature.attributes.lieu;
            popup = new GeoExt.Popup({
                title       : 'psg'
                ,feature    : e.feature
                ,width      : 150
                ,html       : content
                ,collapsible: true
                ,anchored   : true
            });        
            popup.show();
        }
    });

    
    var accordion = new Ext.Panel({
        margins : '5 0 5 5'
        ,split  : true
        ,width  : 300
        ,layout :'accordion'
        ,items  : [grid, layerTree]
    });  

        //Data Panel
    var dataPanel = new Ext.Panel({  
        title   : 'Legende & couche'      
        ,region : 'west'
        ,layout : 'fit'
        ,width  : 300   
        ,items  : [accordion]
    });  
    
    
           
            
 //Final User Interface
    new Ext.Viewport({
        layout: "border"
        ,items: [ mapPanel,dataPanel ]
    }); 
    
});

</script>
</head>
<body>
<div id="map"></div>
</body>
</html>

Même un début de piste serait extra.

Merci

Dernière modification par geobrie (Mon 06 December 2010 22:37)

Hors ligne

 

#2 Mon 06 December 2010 23:11

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 946
Site web

Re: Problème de connexion ?

Bonsoir,

Si tout était identique, ça fonctionnerait smile

Côté serveur, as-tu testé tes services web en utilisant par exemple Qgis ou Udig pour te connecter dessus? Ou en faisant une requête manuelle du type http://tonUrlMapserverOuTonIp/mapserv?map=/home/tonUtilisateur/tonMapfile.map&request=getCapabilities&service=WFS&version=1.0.0 ?
Tu as pensé à utiliser le debug dans Mapserver? Voir http://mapserver.org/optimization/debugging.html
Je suis un peu surpris de voir une adresse www.site-db.fr (donc internet) avec une adresse de sous-réseau (192.168.0.14), normal?

Sinon côté client, écran bleu c'est sous Windows, donc tu as quoi comme retour quand tu ouvres ta page qui contient ton code Openlayers et avec Firebug activé?
Tu as pensé à copier le proxy.cgi entre les serveurs (bloquant, au moins pour le WFS)?


Cordialement

ThomasG

Hors ligne

 

#3 Mon 06 December 2010 23:36

geobrie
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 120

Re: Problème de connexion ?

ThomasG a écrit:

Bonsoir,

Côté serveur, as-tu testé tes services web en utilisant par exemple Qgis ou Udig pour te connecter dessus?

ThomasG


Sous QGIS le service web fonctionne correctement.

ThomasG a écrit:

Ou en faisant une requête manuelle du type http://tonUrlMapserverOuTonIp/mapserv?map=/home/tonUtilisateur/tonMapfile.map&request=getCapabilities&service=WFS&version=1.0.0 ?

ThomasG


Je ne sais pas trop quel type de résultat je doit obtenir voici le résultat :

<WFS_Capabilities version="1.0.0" updateSequence="0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WF … ">

<!--
MapServer version 5.6.5 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=SWF OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=RGBA_PNG INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE
-->

<Service>
<Name>MapServer WFS</Name>
<Title>psg</Title>

<OnlineResource>
http://www.site-db.fr/cgi-bin/mapserv?m … g.map&
</OnlineResource>
</Service>

<Capability>

<Request>

<GetCapabilities>

<DCPType>

<HTTP>
<Get onlineResource="http://www.site-db.fr/cgi-bin/mapserv?map=/var/www/site/htdocs/psg.map&"/>
</HTTP>
</DCPType>

<DCPType>

<HTTP>
<Post onlineResource="http://www.site-db.fr/cgi-bin/mapserv?map=/var/www/site/htdocs/psg.map&"/>
</HTTP>
</DCPType>
</GetCapabilities>

<DescribeFeatureType>

<SchemaDescriptionLanguage>
<XMLSCHEMA/>
</SchemaDescriptionLanguage>

<DCPType>

<HTTP>
<Get onlineResource="http://www.site-db.fr/cgi-bin/mapserv?map=/var/www/site/htdocs/psg.map&"/>
</HTTP>
</DCPType>

<DCPType>

<HTTP>
<Post onlineResource="http://www.site-db.fr/cgi-bin/mapserv?map=/var/www/site/htdocs/psg.map&"/>
</HTTP>
</DCPType>
</DescribeFeatureType>

<GetFeature>

<ResultFormat>
<GML2/>
</ResultFormat>

<DCPType>

<HTTP>
<Get onlineResource="http://www.site-db.fr/cgi-bin/mapserv?map=/var/www/site/htdocs/psg.map&"/>
</HTTP>
</DCPType>

<DCPType>

<HTTP>
<Post onlineResource="http://www.site-db.fr/cgi-bin/mapserv?map=/var/www/site/htdocs/psg.map&"/>
</HTTP>
</DCPType>
</GetFeature>
</Request>
</Capability>

<FeatureTypeList>

<Operations>
<Query/>
</Operations>


ThomasG a écrit:

Sinon côté client, écran bleu c'est sous Windows, donc tu as quoi comme retour quand tu ouvres ta page qui contient ton code Openlayers et avec Firebug activé?
ThomasG



ThomasG a écrit:

Tu as pensé à utiliser le debug dans Mapserver? Voir http://mapserver.org/optimization/debugging.html

Tu as pensé à copier le proxy.cgi entre les serveurs (bloquant, au moins pour le WFS)?
ThomasG


Pour le reste je ssuis un peu perdus.

Merci

Hors ligne

 

#4 Tue 07 December 2010 12:44

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 946
Site web

Re: Problème de connexion ?

Bonjour,

Votre problème est côté client ,il suffit presque de lire le chemin renvoyé par le bug pour comprendre.
FeatureSelectionModel.js fait référence à la synchronisation entre la sélection sur la carte et celle sur le tableau ("grid")
Commentez votre gridPanel et vous devriez avoir la carte au minimum.

Pour régler le problème du "grid", il faudra à priori bien voir ce que proxy.cgi fait.

La documentation est abondante à ce propos :
*le premier résultat de recherche http://georezo.net/resultatrecherche.ph … 69089#1312
*ou sur http://www.geotribu.net/node/264
*ou bien encore sur http://trac.osgeo.org/openlayers/wiki/F … #ProxyHost

Cordialement

ThomasG

PS: Pensez à regarder la documentation que constitue les autres réponses du forum en utilisant un peu plus la recherche, svp.

Hors ligne

 

Pied de page des forums

Powered by FluxBB