Multi-contrats

API Web 2D en Javascript

Pour pouvoir ajouter dans sa page HTML des clés de plusieurs contrats différents, il faut:

  • Placer une balise script qui fait appel à la page de vérification de licence. Vous devez remplacer le paramètre key par une des clés de licence d'un de vos contrats ;
  • Pour chaque nouveau contrat, vous devez ajouter une nouvelle balise script avec la clé et le nom de l'instance et ajouter le paramètre includeEngine=false& qui permet de ne pas re-télécharger l'API ;

Le code HTML suivant contient tous les éléments nécessaires à l'inclusion de cartes avec plusieurs contrats de licence API :

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>API 2D: multi-cartes</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <script
        type="text/javascript"
        src="http://api.ign.fr/geoportail/api?v=VERSION&amp;key=CONTRAT1&amp;instance=carte1&amp;">
    </script>
    <script
        type="text/javascript"
        src=
"http://api.ign.fr/geoportail/api?v=VERSION&amp;key=CONTRAT2&amp;instance=carte2&amp;includeEngine=false&amp;">
    </script>

    <script type="text/javascript">
    <!--
    function initGeoportalMap() {

        geoportalLoadcarte1("Carte1Div", "normal" );
        if( carte1.allowedGeoportalLayers ) {
            carte1.addGeoportalLayers(carte1.allowedGeoportalLayers);
        }

        geoportalLoadcarte2("Carte2Div", "normal", "GLP" );
        if( carte2.allowedGeoportalLayers ) {
            carte2.addGeoportalLayers(carte2.allowedGeoportalLayers);
        }
    }
      -->
    </script>
  </head>
  <body>
      <h1 style="margin-left:45%;">multi-cartes</h1>
      <div id="Carte1Div" style="width:800px;height:600px;"></div>
      <div id="Carte2Div" style="width:800px;height:600px;position:relative;left:250px"></div>
    </body>
</html>

Examinons le code plus en détail. Nous avons deux balises scripts qui permettent de rajouter les deux contrats, chacun associé à une instance de carte. Un seul appel à la fonction initGeoportalMap() suffit. Dans cette fonction, on déclare geoportalLoadcarte1("Carte1Div", "normal" ) qui permet charger la carte associée à la clé CONTRAT1. On initialise l'objet carte2 avec geoportalLoadcarte2("Carte2Div", "normal", "GLP" ) qui correspond au contrat CONTRAT2. Nous avons alors deux cartes différentes avec deux contrats différents sur lesquelles nous pouvons travailler indépendamment l'une de l'autre.