IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

pre 1.0beta5: geoportalLike


Sujet :

IGN API Géoportail

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut pre 1.0beta5: geoportalLike
    Je suis en train d'essayer cette page et pof des erreurs 503 sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://wxs.ign.fr/geoportail/wmsc?LAYERS=GEOGRAPHICALGRIDSYSTEMS.MAPS&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=IGNF:MILLER&BBOX=-626172,5635548,0,6261720&WIDTH=256&HEIGHT=256&TILED=true&gppkey=J2rzF4N4tltUUTP9MR9Q9cnMuaIAAAAAAEuW9xgHW45XSoK3AAABI3c4mfoAAAAAAlgAAQELzIOB9Z8Uqx7pKM7hA6nhR4H-Lfx_odlih4eT0XbAuwTLs1tjpE3ZAVRXWpxlyY2BwzQAAEM0AADCtAAAQrQAAA
    J'ai une erreur 404 sur une image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/geoportail/api/js/1.0beta5/examples/img/navigation_history.png
    elle est dans ./theme/default/img/navigation_history.png

    J'essaye d'ajouter une couche image et j'ai de nouveau un 404 beaucoup plus bloquant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/geoportail/api/js/1.0beta5/examples/defs/EPSGWGS84(DD).js?_tick_=1251835670977
    suivi d'apparence d'une demande de même nature via le proxy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/geoportail/proxy.php?url=http%3A%2F%2Fspatialreference.org%2Fref%2Fepsg%2FWGS84(DD)%2Fproj4js%2F%3F_tick_%3D1251835671038
    et mon proxy est fatigué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <br />
    <b>Warning</b>:  fopen(http://spatialreference.org/ref/epsg/WGS84(DD)/proj4js/?_tick_=1251835671038) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: HTTP request failed! HTTP/1.1 404 NOT FOUND
     in <b>C:\web\geoportail\proxy.php</b> on line <b>5</b><br />
    <br />
    <b>Warning</b>:  feof(): supplied argument is not a valid stream resource in <b>C:\web\geoportail\proxy.php</b> on line <b>7</b><br />
    <br />
    <b>Warning</b>:  fread(): supplied argument is not a valid stream resource in <b>C:\web\geoportail\proxy.php</b> on line <b>8</b><br />
    <br />
    ce problème a déjà été évoqué ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut changement de proxy
    Avec un proxy php+curl, j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html lang="en">
    <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <title>Page not found at /ref/epsg/WGS84(DD)/proj4js/</title>
      <meta name="robots" content="NONE,NOARCHIVE">
      <style type="text/css">
        html * { padding:0; margin:0; }
        body * { padding:10px 20px; }
        body * * { padding:0; }
        body { font:small sans-serif; background:#eee; }
        body>div { border-bottom:1px solid #ddd; }
        h1 { font-weight:normal; margin-bottom:.4em; }
        h1 span { font-size:60%; color:#666; font-weight:normal; }
        table { border:none; border-collapse: collapse; width:100%; }
        td, th { vertical-align:top; padding:2px 3px; }
        th { width:12em; text-align:right; color:#666; padding-right:.5em; }
        #info { background:#f6f6f6; }
        #info ol { margin: 0.5em 4em; }
        #info ol li { font-family: monospace; }
        #summary { background: #ffc; }
        #explanation { background:#eee; border-bottom: 0px none; }
      </style>
    </head>
    <body>
      <div id="summary">
        <h1>Page not found <span>(404)</span></h1>

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Hier soir, l'infrastructure Géoportail a eu quelques problèmes techniques qui sont sûrement à l'origine des 404 (20h30 à 23h) ...
    Pour les systèmes de projections, Cf. ma réponse sur wfs (Corine Land Cover) ...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut Bravo pour les modif
    J'ai mis en place les fichiers de ce jour.
    La page http://atlasnw.free.fr/geoportail/ap...ortalLike.html fonctionne!

    Si on demande l'ajout d'une couche image (la 2ème icône avec un +),
    on spécifie comme url http://sd1878-2.sivit.org/geoserver/wms
    et le miracle a lieu: quelques instants après un menu permet de sélectionner une couche, par exemple CLC06 WGS, et hop à gauche une nouvelle couche et qui se charge: c'est ti pas beau

    Voici le code de mon proxy sur free.fr (copier/coller de partout sur le web comme un cochon)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    <?php
    // proxy http
    // auteur: Marc Gauthier
    // 02/09/2009
    // http://www.papygeek.com/download/53/
    // Transfer-Encoding: chunked
      $debug = 1;
      $sUrl = '';
      $sReponse = '';
    // via un proxy
      $proxy_port = 80;
      $proxy_host = '';
      if ($_SERVER["REQUEST_METHOD"] === 'GET' && isset($_REQUEST["url"]) ) {
        $sUrl = $_REQUEST["url"];
        debug("GET url:$sUrl");
        proxy($sUrl);
        exit;
      }
      phpinfo(INFO_VARIABLES);exit;
    function proxy($sUrl) {
       global $proxy_host,$proxy_port;
      $aUrl = @parse_url($sUrl);
      if ( ! isset($aUrl['scheme']) ) {
        confess("proxy scheme");
      }
    // construction de la requete
      $sReq = "GET $sUrl HTTP/1.0\r\n" .
        'Host: ' . $aUrl['host'] . ($aUrl['port'] ? ':'. $aUrl['port'] : '') .
        "\r\nConnection: close\r\n\r\n";
      if ( empty($proxy_host)) {
        $host = $aUrl["host"];
        $port = $aUrl["port"] ? $aUrl["port"] : 80;
      } else {
        $host = $proxy_host;
        $port = $proxy_port;
      }  
      debug("host:$host port:$port");
      $fp = @fsockopen ($host, $port, $errno, $errstr, 5);
      if (!$fp) {
        confess("fsockopen failed: $errstr ($errno)");
      }
      debug("sReq:$sReq");
      fwrite($fp, $sReq);
      debug("before loop");
      $headers_processed = 0;
      $reponse = '';
      $strip_header = 1;
      $set_content_type = 1;
      $chunked = 0;
      ob_start();
      while (!feof($fp)) {
        $r = fread($fp, 4096);
        #debug("in loop: $r");
        if ($strip_header && !$headers_processed) {
          #debug("in loop strip headers: $r");
          debug("trying to find end of headers");
          $response .= $r;
          $nlnl = strpos($response, "\r\n\r\n");
          $add = 4;
          if (!$nlnl) { 
            $nlnl = strpos($response, "\n\n");
            $add = 2;
          }
          if (!$nlnl) continue;
          debug("end of headers found");
     // Transfer-Encoding: chunked     
          if ($set_content_type) {
            debug("extracting content-type");
            $headers = substr($response, 0, $nlnl);
            debug("headers: $headers");
            if ( ! valideHeaders($headers) ) {
              confess("headers");
            }  
            if (preg_match_all('/^(Content-.*?)(\r?\n|$)/ims', $headers, $matches)) {
              for ($i = 0; $i < count($matches[0]); ++$i) {
                $ct = $matches[1][$i];
                debug("header($ct)");
                header($ct);
              }
            }
          }
          $response = substr($response, $nlnl+$add);
          if ( $chunked ) {
            $nlnl = strpos($response, "\r\n<?xml");
            if ($nlnl) {
              $response = substr($response, $nlnl+2);
            }
          }  
          debug("header post:".substr($response,0,20));
          print $response;
          $headers_processed = 1;
        } else {
          print $r;
        }  
      }
      fclose ($fp);
      debug("after loop");
    }
    //
    // on valide les headers
    function valideHeaders($header=null) {
      $headers = explode("\n",$header);
      if (!is_array($headers) or count($headers) < 1) {
        return false;
      }
      switch(trim(strtolower($headers[0]))) {
        case 'http/1.0 100 ok':
        case 'http/1.0 200 ok':
        case 'http/1.1 100 ok':
        case 'http/1.1 200 ok':
          return true;
          break;
      }
      return false;
    }
    //
    // mode chunk
    //
    // la chaine "str" peut contenir plusieurs chunks
    function unchunk($str=null) {
      global $sReponse;
      if (!is_string($str)) {
        confess("unchunk string");
      }
    // on ajoute au reliquat precedent  
      $sReponse .= $str;
      $eol = "\r\n";
      $add = strlen($eol);
      $tmp = $sReponse;
      $str = '';
    // on recherche les chunks  
      do {
        $tmp = ltrim($tmp);
        $pos = strpos($tmp, $eol);
        if ($pos === false) {
          confess("unchunk eol");    
        }
        $len = hexdec(substr($tmp,0,$pos));
        if (!is_numeric($len) or $len < 0) { 
          confess("unchunk len:$len");
        }
     // on a tout dans le buffer
        if ( strlen($tmp) < ($pos + $add + $len) ) {
     // pour la prochaine fois
          $sReponse = $tmp;
          return;
        }  
        $str = substr($tmp, ($pos + $add), $len);
        print $str;
        $sReponse = substr($tmp, ($len + $pos + $add));
        $check = trim($sReponse);
      } while(!empty($check));
      unset($tmp);
      unset($str);
      return;
    }
    function confess($msg) {
      debug($msg);
      header("HTTP/1.0 500 $msg");
      exit;
    }
    function debug($msg) {
      global $debug;
      if ($debug) error_log(__FILE__.": $msg", 0);
    }
    
    ?>

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut Proxy PHP
    Si tu le souhaites, je peux rajouter le proxy php à la liste des proxys sur http://api.ign.fr/geoportail/api/doc.../download.html ?

    Sinon (je ne veux pas modérer ton enthousiasme) les ajouts de couches se font en fonction de la carte courante (projection de la baseLayer) : si tu recommences l'ajout en ayant zoomé au niveau monde, aucune couche exposée ne sera compatible, donc rien

    En WFS, on a pas cette contrainte.

    Sur l'ajout WMS, on peut aussi ajouter des caches (tileCache) compatibles, j'ai encore des problèmes si l'origine n'est pas (0,0) car les capabilities du WMSC ne l'indiquent pas ...

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut Juste la France
    Le monde ne m'intéresse pas quand je fais mon petit atlas d'I&V: la couverture de ce département me suffit!
    Pour le proxy, j'ai encore un peu de travail avant de le rendre compatible avec les "Transfer-Encoding: chunked" de l'HTTP 1/1.
    Sur le choix d'un des différents services (WMS, WMS-C, WFS, ...), ma politique est si ça marche c'est bon car je n'y comprends pas grand chose...

    On se couche tard à l'IGN, c'est terrible de devoir satisfaire ses clients!

  7. #7
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par mga_geo Voir le message
    Le monde ne m'intéresse pas quand je fais mon petit atlas d'I&V: la couverture de ce département me suffit!
    C'était juste pour prévenir que l'insertion dépend de l'échelle. Si le zoom ne t'intéresse pas, bloque tes cartes à l'échelle min 5.

    Citation Envoyé par mga_geo Voir le message
    Pour le proxy, j'ai encore un peu de travail avant de le rendre compatible avec les "Transfer-Encoding: chunked" de l'HTTP 1/1.
    Pas de problème, c'était une proposition pour mettre en avant ton travail.

    Citation Envoyé par mga_geo Voir le message
    Sur le choix d'un des différents services (WMS, WMS-C, WFS, ...), ma politique est si ça marche c'est bon car je n'y comprends pas grand chose...
    Ok, je comprends (c'est effectivement complexe) !

    Citation Envoyé par mga_geo Voir le message
    On se couche tard à l'IGN, c'est terrible de devoir satisfaire ses clients!
    Vous n'êtes pas (encore?) des clients, mais des usagers

    De toute façon, les nouvelles formes de communication comme le forum nécessitent d'être présents pour dialoguer avec la communauté ... quelque que soit l'heure

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pre 1.0beta5 pour tests
    Par dgrichard dans le forum IGN API Géoportail
    Réponses: 82
    Dernier message: 16/03/2010, 20h56
  2. pre 1.0beta5: exemples
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 40
    Dernier message: 07/09/2009, 11h02
  3. pre 1.0beta5 du 04/09: exemples
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 06/09/2009, 06h16
  4. pre 1.0beta5: error_log d'apache
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 03/09/2009, 12h18
  5. pre 1.0beta5: couche wfs
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 01/09/2009, 19h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo