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 :

"openlayers is not defined" sur chargement de ma page carte en Ajax


Sujet :

IGN API Géoportail

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut "openlayers is not defined" sur chargement de ma page carte en Ajax
    Bonjour,

    J'ai une page carte 'carte_apign.php' qui fonctionne normalement.
    Lorsque j'insere cette page en include ça fonctionne :
    include ('../api_ign/carte_apign.php');
    Mais si je charge la carte avec une fonction onclick utilisant ajax la page et le viewer se chargent mais aucune couche n'est visible et dans la console de debug j'ai le message "openlayers is not defined"

    <div class="button_hidden" style="background:#FFFFFF; text-align:left; cursor:pointer; " onclick=" Ajax_carte_fiche()" ><!-- Ajax_carte_fiche()-->
    <h2>
    <img style="cursor:pointer;" src="img/plus.png" id="plusmoins1" align="absmiddle" alt="" />
    <strong>Carte de localisation</strong>
    </h2>
    </div>
    <br/>
    <div id="detail1" >
    <?php
    echo "ici <a href='../api_ign/carte_apign.php' target='_blank' >la carte</a> ... normalement !";

    echo "<div id='divcarte'></div>"; // ICI ca BUG !!!

    ?>
    </div>
    et le .js avec la fonction ajax
    function Ajax_carte_fiche()
    {
    $.ajax(
    {
    type: "GET",
    url: "../api_ign/carte_apign.php",
    dataType : "html",
    error:function(msg)
    {
    alert( "Error !: " + msg );
    },
    success:function(data)
    {
    $('#divcarte').append(data);
    }
    });
    }

  2. #2
    Membre averti
    Femme Profil pro
    Consultante SIG
    Inscrit en
    Mars 2011
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultante SIG

    Informations forums :
    Inscription : Mars 2011
    Messages : 233
    Points : 356
    Points
    356
    Par défaut
    Bonjour,
    L'erreur "openlayers is not defined" s'affiche en général quand on essaye d'executer une fonction de l'API géoportail ou d'openLayers alors que le code source de l'API n'est pas complètement chargé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" charset="utf-8" src="http://api.ign.fr/geoportail/api/js/2.0.3/Geoportal.js"><!-- --></script>
    En général, on ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.onload= function(){
    //code API
    };
    Ce qui permet d'attendfre le chargement du script API.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci mais j'ai déja le "windows.onload" sur ma page carte ...
    le lien pour voir la page qui bug : http://www.pilote41.fr/outils_obs/mo.../carteajax.php
    il faut cliquer sur "carte de localisation" en vert ...

  4. #4
    Membre averti
    Femme Profil pro
    Consultante SIG
    Inscrit en
    Mars 2011
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultante SIG

    Informations forums :
    Inscription : Mars 2011
    Messages : 233
    Points : 356
    Points
    356
    Par défaut
    J'ai comme l'impression qu'il n'y a plus de problème sur votre page...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    je viens d'essayer sur plusieurs PC et j'ai toujours le problème
    Je parle bien de la carte qui doit s'afficher en bas de la page lorsqu'on clic sur le "+" vert.
    c'est la page qui est appeler par la lien "la carte"que je voudrais voir apparaitre ....

  6. #6
    Membre chevronné Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Points : 1 843
    Points
    1 843
    Par défaut
    Bonjour,

    l'erreur semble venir lors de l'exécution du code de GeoportalAlert.js qui n'est pas conditionné par le onload de la carte, qui utilise la classe OpenLayers.Util et est exécuté dès le chargement. L'instruction est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    OpenLayers.Util.extend(Geoportal$translations, {
    });
    Je ne sais pas quel est le but de l'exécuter séparément du reste du code qui est dans carte_apiign.php, mais si on la conditionne au chargement du onload, ça devrait aller mieux.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    j'ai supprimé GeoportalAlert.js qui ne semble pas utile ... je ne sais pas pourquoi il etait là :-( j'ai paramétré l'API il y a quelques temps et elle fonctionne très bien en include ou en chargement direct de la page, c'est seulement depuis que j'essaye de la charger en Ajax que ca ne fonctionne plus ...

    Et ça ne fonctionne toujours, pas, mais je n'ai plus d'erreur dans la console !

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    je viens de remplacer ma carte par la carte quickstart téléchargé sur le site de l'API ... la carte seule fonctionne mais l'appel par Ajax me renvoi l'erreur OpenLayers :-(

    Je ne suis plus sûr que le problème soit seulement lié à l'API IGN ... mais je ne sais pas ou chercher ??? mon code ajax est très basic, et l'appel de n'importe quel autre page fonctionne.

    pour résumé :
    - la page carte fonctionne
    - l'appel d'une page fonctionne
    - l'appel de la page carte ne fonctionne pas

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    j'ai trouvé une solution en contournant un peu le problème ... je post la solution si ça peut aider quelqu'un ...

    J'ai remplacé le fonction "function Ajax_carte_fiche()" par une fonction plus simple qui insert la carte en iframe
    function insertcarte()
    {
    $('#divcarte').html('<iframe src="../api_ign/carte_apign.php" height="500" width ="600"></iframe>');
    }

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

Discussions similaires

  1. Lancement d'un fichier sur chargement d'une page
    Par Mut dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/07/2007, 16h03
  2. EInvalidGraphic sur chargement d'un jpeg dans un TImage
    Par tomtom7 dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/02/2007, 13h54
  3. HtmlElement not defined sous Firefox
    Par la.sophe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/02/2006, 21h42
  4. Pb sur chargement d'un formulaire
    Par gust dans le forum Access
    Réponses: 12
    Dernier message: 13/01/2006, 12h01

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