Précédent   Forum des professionnels en informatique > Applications > SIG : Système d'information Géographique > IGN API Géoportail
IGN API Géoportail Forum d'entraide sur l'API Géoportail développé par IGN
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/02/2012, 12h27   #1
Invité régulier
 
Inscription : février 2012
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 23
Points : 6
Points : 6
Par défaut Démarrage d'intégration difficile avec KML

Bonjour,

Je démarre tout juste l'intégration de l'API, et malgré des jours de recherche sur le Forum et le site API IGN, j'ai du mal à démarrer.

Voilà mon utilisation :
- La carte s'affichera en miniature, puis un lien permettra de la consulter en plein écran.
- La carte étant "secondaire" par rapport aux autres infos de ma page HTML, j'ai décidé de charger l'API une fois tout le reste de la page chargée. Donc pas dans le "header".
- Je compte donc appeler la version "mini", puis reconstruire une autre map avec toutes les fonctionnalités dans une div en modal (jQuery est mon ami).

Je me focalise pour le moment sur la "mini".
Voilà mon code :

Code :
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
function loadScript() {
	var script = document.createElement('script');
	script.type = 'text/javascript';
	script.src = 'http://api.ign.fr/geoportail/api/js/1.2/Geoportal.js';
	document.body.appendChild(script);

	script.onload=function(){
		Geoportal.load(
			// div's ID:
			'viewerGeoportailDiv',
			// API's keys:
			['3091429671334396237'],
			{// map's center :
			// longitude:
			lon:JS_GLOBALS['circuit_row_lng'],
			// latitude:
			lat:JS_GLOBALS['circuit_row_lat']
			},
			// Zoom:
			10,
			//options:
			{
			mode:'mini',
			overlays:{'kml':[{'nameOfOverlay':'/comresweb/206.kml', options:{}}]}
			}
		);
	} 
}

window.onload = loadScript;
Déjà, je ne sais pas si ce code est compatible API 1.3. Difficile de se lancer dans les DEV sachant que le code risque d'être obsolète dans quelques semaines..

La mini s'affiche sur mon site (en recette), se positionne au bon endroit, mais le KML ne s'affiche pas.
Même serveur pour ce site et le KML, donc pas besoin de proxy.

Le KML répond en direct avec un navigateur, et google Maps arrive à l'afficher.. donc je pense qu'il est au bon format.

Par contre, j'ai vu qu'il fallait appeler l'API en mode étendu..
Or http://api.ign.fr/geoportail/api/js/1.2-e/Geoportal.js n'existe pas.
Dans l'exemple KML sur le site IGN :
Appel dans le header : /geoportail/api?v=1.2&key=1711091050407331029&instance=viewer&includeEngine=true&
Pas de mode étendu non plus !?!

J'ai testé le générateur de code, mais il affiche du code pour l'API 1.1, avec un proxy..

Bref, y a-t-il un mode étendu de l'API quand on l'appelle dans le BODY ?
Voyez-vous un problème dans mon code qui empêcherait l'affichage des KML ?

PS :
Concernant la nouvelle version de Geoportail, ça semble être la révolution : Mon interlocuteur départemental m'a dit que tous les contrats allaient être revus, et qu'ils attendaient des réponses du service marketing pour les modalités de chaque contrat..
tbkgeo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 14h02   #2
Membre émérite
 
Inscription : mai 2009
Messages : 1 087
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 1 087
Points : 822
Points : 822
Avec Firebug, j'ai regardé dans l'onglet réseau le script chargé pour une page avec l'api étendue dans le header et la réponse est:
http://api.ign.fr/geoportail/api/js/...talExtended.js
mga_geo est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/02/2012, 15h04   #3
Invité régulier
 
Inscription : février 2012
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 23
Points : 6
Points : 6
Citation:
Envoyé par mga_geo Voir le message
Avec Firebug, j'ai regardé dans l'onglet réseau le script chargé pour une page avec l'api étendue dans le header et la réponse est:
http://api.ign.fr/geoportail/api/js/...talExtended.js
Bien vu, j'espère que cette API sera toujours dispo dans les futures versions.

Malheureusement, le KML ne s'affiche toujours pas.
Que ce soit en mini ou normale, la version "extended" est bien chargée, aucune erreur JS, mais pas d'affichage du tracé KML..

Une piste ?
Le KML en question est-il sensé apparaitre dans l'onglet réseau de Firebug ?
Je n'ai rien vu de tel dans les exemples..

Aucune activation dans les contrats ? Là non plus je n'ai rien vu qui proposait les KML dans les différentes couches du contrat.
tbkgeo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 23h20   #4
Membre émérite
 
Inscription : mai 2009
Messages : 1 087
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 1 087
Points : 822
Points : 822
Par défaut Mon premier essai en 1.3

Et c'est un bon début: http://atlasnw.free.fr/geoportail/exemples/tbkgeo.html
mga_geo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 10h40   #5
Invité régulier
 
Inscription : février 2012
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 23
Points : 6
Points : 6
Par défaut Ton premier essai en 1.3

Citation:
Envoyé par mga_geo Voir le message
Effectivement. Merci du test. Du coup:
- J'ai repris ton code et KML, en changeant uniquement la clé de licence.
=> impeccable effectivement, ta map et ton KML s'affiche. Et il est appelé en GET dans l'onglet réseau de Firebug.

- J'ai tenté de repasser en 1.2Extended, toujours avec ton code.
=> ça ne marche plus, pas d'affichage de KML; il n'est PAS appelé en GET dans l'onglet réseau de Firebug.

- De nouveau 1.3Extended, avec mon KML
=> Ca s'affiche, même si les textes associés aux objets ne s'affichent pas correctement.. Mais on arrive à du détail d'affichage et d'interprétation du KML.

Bref, mon KML est OK et la v1.3Extended gère correctement (mais ce n'est pas encore une version de prod).

Faut-il en conclure que la version 1.2Extended n'est pas "KMLproof" ?
Ca me surprend... Est-ce ma façon d'appeler l'API qui perturbe l'inclusion KML ?
tbkgeo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 16h59   #6
Invité régulier
 
Inscription : février 2012
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 23
Points : 6
Points : 6
Je viens de passer encore de nombreuses heures sur mon "cas", sans succès.

Si je comprends bien :
- L'appel de geoportalLoad+[INSTANCE] est à bannir, cette mécanique devenant obsolète.
- du coup http://api.ign.fr/geoportail/api?v=1...gine=true& devient obsolète (je me trompe?)

Il faudrait donc désormais privilégier :
- Geoportal.load(); à qui on passe la clé, le centrage, les overlays...
- du coup, l'appel de l'API se fait avec : http://api.ign.fr/geoportail/api/js/1.2/Geoportal.js .. voire http://api.ign.fr/geoportail/api/js/...talExtended.js car on veut du mode Etendu (merci mga_geo)..

Or avec un appel d'API de ce type, les KML ne s'affichent pas.
La version 1.3 du dépôt résout le problème, mais cette version n'est pas encore opérationnelle : les "originators" ne s'affichent pas, ni les boites à outils.. Et je me vois mal brancher mon site de prod sur le dépôt..

Donc le fait de charger l'API "à la volée" tel que je le fais ne semble pas problématique.. enfin pas encore.. car en version de base, ça ne marche déjà pas :-(

Donc pour résumer :
Quelqu'un peut-il m'expliquer comment on intègre un KML à la "nouvelle" norme (sous la 1.2, avec Geoportal.load()) ?
Aucun exemple ne montre ce type d'intégration, aucun tutoriel non plus.. Et tous mes essais sont infructueux...

Merci d'avance..
tbkgeo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 22h32   #7
Membre émérite
 
Inscription : mai 2009
Messages : 1 087
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 1 087
Points : 822
Points : 822
Le passage en version 1.3 sur le dépot ne m'inquiète pas.
L'absence de documentation et d'exemples est plus pénalisante.
Trouver http://depot.ign.fr/geoportail/api/d...rtal.Loader.JS est un jeu de pistes un peu complexe et ce n'est pas le fil d'Ariane.
mga_geo est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/02/2012, 10h57   #8
Invité régulier
 
Inscription : février 2012
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 23
Points : 6
Points : 6
Citation:
Envoyé par mga_geo Voir le message
Le passage en version 1.3 sur le dépot ne m'inquiète pas.
L'absence de documentation et d'exemples est plus pénalisante.
Trouver http://depot.ign.fr/geoportail/api/d...rtal.Loader.JS est un jeu de pistes un peu complexe et ce n'est pas le fil d'Ariane.
Je ne comprends pas trop.. Tu me conseilles de laisser tomber la 1.2 et de développer en 1.3 ? Le loader.JS remonte une erreur quand on l'appelle directement. D'ailleurs, la doc indique qu'il ne faut pas l'appeler en direct, cette fonction.. Dans tous les cas, il semblerait que pas mal de choses ne fonctionnent pas en 1.3.. ou alors les paramètres par défaut ont considérablement changés.


Voilà les derniers tests que j'ai effectué :

- VERSION 1.2 + GeoportalExtended + Geoportal.load
=> map OK, centrage OK, boite à outil OK, KML ERREUR, originators ERREUR
Code :
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
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>tbkgeo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta http-equiv="cache-control" content="no-cache">
<script type="text/javascript">
function loadScript() {
	Geoportal.load(
		// div's ID:
		'GeoportalVisuDiv',
		// API's keys:
		['3091429671334396237'],
		{// map's center :
		// longitude:
		lon:4.2071,
		// latitude:
		lat:45.4103, 
		},
		// Zoom:
		10,
		//options:
		{
			overlays:{
				'kml':[{
					name:'Le circuit',
					url:'/comresweb/206.kml', 
					options:{ 
						minZoomLevel:11, 
						maxZoomLevel:13, 
						originators:[{pictureUrl:'/comresweb/images/aide-small.png',url:'http://www.touriloire.fr/'}],
						visibility:true
					}
					}]
			}
		}
	);
}

window.onload = loadScript;
</script>
</head>
<body>  
VERSION 1.2 + GeoportalExtended + Geoportal.load
=> map OK, centrage OK, boite à outil OK, KML ERREUR, originators ERREUR
  <div id="GeoportalVisuDiv" style="width:800px;height:600px;"></div>
  <script language="javascript" src="http://api.ign.fr/geoportail/api/js/1.2/GeoportalExtended.js"></script>
</body>
</html>


- VERSION 1.3 + GeoportalExtended + Geoportal.load
=> map OK, centrage OK, boite à outil ERREUR, KML OK, originators ERREUR
Code :
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
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>tbkgeo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta http-equiv="cache-control" content="no-cache">
<script type="text/javascript">
function loadScript() {
	Geoportal.load(
		// div's ID:
		'GeoportalVisuDiv',
		// API's keys:
		['3091429671334396237'],
		{// map's center :
		// longitude:
		lon:4.2071,
		// latitude:
		lat:45.4103, 
		},
		// Zoom:
		10,
		//options:
		{
			overlays:{
				'kml':[{
					name:'Le circuit',
					url:'/comresweb/206.kml', 
					options:{ 
						minZoomLevel:11, 
						maxZoomLevel:13, 
						originators:[{pictureUrl:'/comresweb/images/aide-small.png',url:'http://www.touriloire.fr/'}],
						visibility:true
					}
					}]
			}
		}
	);

}

window.onload = loadScript;
</script>
</head>
<body>  
VERSION 1.3 + GeoportalExtended + Geoportal.load
=> map OK, centrage OK, boite à outil ERREUR, KML OK, originators ERREUR
  <div id="GeoportalVisuDiv" style="width:800px;height:600px;"></div>
  <script language="javascript" src="http://depot.ign.fr/geoportail/api/js/1.3/GeoportalExtended.js"></script>
</body>
</html>

VERSION 1.3 + GeoportalExtended + Geoportal.loadJS
=> Erreur Javascript Geoportal.loadJS undefined
Code :
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
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>tbkgeo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta http-equiv="cache-control" content="no-cache">
<script type="text/javascript">
function loadScript() {

	Geoportal.loadJS(
		// div's ID:
		'GeoportalVisuDiv',
		// API's keys:
		['3091429671334396237'],
		{// map's center :
		// longitude:
		lon:4.2071,
		// latitude:
		lat:45.4103, 
		},
		// Zoom:
		10,
		//options:
		{
			overlays:{
				'kml':[{
					name:'Le circuit',
					url:'/comresweb/206.kml', 
					options:{ 
						minZoomLevel:11, 
						maxZoomLevel:13, 
						originators:[{pictureUrl:'/comresweb/images/aide-small.png',url:'http://www.touriloire.fr/'}],
						visibility:true
					}
					}]
			}
		}
	);

}

window.onload = loadScript;
</script>
</head>
<body>  
VERSION 1.3 + GeoportalExtended + Geoportal.loadJS
=> Erreur Javascript Geoportal.loadJS undefined
  <div id="GeoportalVisuDiv" style="width:800px;height:600px;"></div>
  <script language="javascript" src="http://depot.ign.fr/geoportail/api/js/1.3/GeoportalExtended.js"></script>
</body>
</html>

- api?v=1.2-e&includeEngine=false + VERSION 1.2 + Geoportal.js (ou +GeoportalExtended.js) + Geoportal.load
=> map OK, centrage OK, boite à outil OK, KML ERREUR, originators ERREUR
Code :
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
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>tbkgeo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta http-equiv="cache-control" content="no-cache">
	<script language="javascript" src="http://api.ign.fr/geoportail/api?v=1.2-e&key=3091429671334396237&instance=geoviewer&includeEngine=false"></script>;

<script type="text/javascript">
function loadScript() {

	Geoportal.load(
		// div's ID:
		'GeoportalVisuDiv',
		// API's keys:
		['3091429671334396237'],
		{// map's center :
		// longitude:
		lon:4.2071,
		// latitude:
		lat:45.4103, 
		},
		// Zoom:
		12,
		//options:
		{
			overlays:{
				'kml':[{
					name:'Le circuit',
					url:'/comresweb/206.kml', 
					options:{ 
						minZoomLevel:11, 
						maxZoomLevel:13, 
						originators:[{pictureUrl:'/comresweb/images/aide-small.png',url:'http://www.touriloire.fr/'}],
						visibility:true
					}
					}]
			}
		}
	);

}

window.onload = loadScript;
</script>
</head>
<body>  
api?v=1.2-e&includeEngine=false + VERSION 1.2 + Geoportal.js + Geoportal.load
=> map OK, centrage OK, boite à outil OK, KML ERREUR, originators ERREUR
  <div id="GeoportalVisuDiv" style="width:800px;height:600px;"></div>
  <script language="javascript" src="http://api.ign.fr/geoportail/api/js/1.2/Geoportal.js"></script>
</body>
</html>

- ANCIENNE METHODE
api?v=1.2-e&includeEngine=false + VERSION 1.2 + Geoportal.js + geoportalLoadTBKGEOVIEWER
=> TOUT EST OK (sauf qu'il s'agit d'une version à bannir..)
Code :
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
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>tbkgeo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta http-equiv="cache-control" content="no-cache">
	<script language="javascript" src="http://api.ign.fr/geoportail/api?v=1.2-e&key=3091429671334396237&instance=TBKGEOVIEWER&includeEngine=false"></script>;

<script type="text/javascript">
function initGeoportalMap() { // appelé en auto par l'API en fin de chargement...
	geoportalLoadTBKGEOVIEWER("GeoportalVisuDiv", "normal", 'FXX', null, null);
	
	if (TBKGEOVIEWER.getMap().allowedGeoportalLayers) {
//-----------------------------------------------------------------------
// Carte IGN (true=oui  false=non) (exemples d'opacité : 0.8 ou 1.0)
		TBKGEOVIEWER.addGeoportalLayer('GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC', {visibility:true, opacity:1});
//-----------------------------------------------------------------------
// onglet "couches" affiché (true=oui  false=non)
		TBKGEOVIEWER.setLayersPanelVisibility(true);
// onglet "couches" développé (true=oui  false=non)
		TBKGEOVIEWER.openLayersPanel(false);
//-----------------------------------------------------------------------
// onglet "outils" affiché (true=oui  false=non)        
		TBKGEOVIEWER.setToolsPanelVisibility(true);
// onglet "outils" développé (true=oui  false=non)        
		TBKGEOVIEWER.openToolsPanel(false);
//-----------------------------------------------------------------------
// positionnement du point central de la carte (coordonnées + niveau de zoom)
		TBKGEOVIEWER.getMap().setCenterAtLonLat(4.2071, 45.4103, 12);
//-----------------------------------------------------------------------
// Affichage des marqueurs KML + logo Valroc
		TBKGEOVIEWER.getMap().addLayer("KML", "Le circuit", "/comresweb/206.kml", {
			minZoomLevel:0,
			maxZoomLevel:20,
			originators:[{pictureUrl:'/comresweb/images/aide-small.png',
			url:'http://www.touriloire.fr'}], 
			visibility:true});
	}
}

</script>
</head>
<body> 
ANCIENNE METHODE
api?v=1.2-e&includeEngine=false + VERSION 1.2 + Geoportal.js + geoportalLoadTBKGEOVIEWER 
=> TOUT EST OK (sauf qu'il s'agit d'une version à bannir..)
  <div id="GeoportalVisuDiv" style="width:800px;height:600px;"></div>
  <script language="javascript" src="http://api.ign.fr/geoportail/api/js/1.2/Geoportal.js"></script>
</body>
</html>

Pour résumer, la seule méthode que j'ai réussi à faire tourner, c'est la version "à l'ancienne", que l'on nous demande d'éviter et qui ne sera pas compatible avec la prod d'ici peu. Et en plus, cette version oblige à charger dans le header, ce qui est consommateur pour mon utilisation (je voulais charger la map et son API une fois tout le reste chargé/exécuté sur ma page HTML..


J'ai du louper quelque chose dans l'histoire, ça me surprend qu'on ne puisse pas afficher un KML sans passer par l'API Header (à la "nouvelle" méthode).

A l'heure actuelle, je ne vois que 2 issues :
- soit en version 1.3 Geoportal.load prend de nouveaux paramètres pour l'affichage des boites à outil et des originators.. et je ne sais pas où les trouver (rien trouvé dans la doc 1.3)..

- soit en version 1.2 (et 1.3), nous avons accès à une instance "générique". Dans l'ancien code, tous les affichages se faisaient à partir de l'instance nommé dans l'appel de l'API (VISU, viewer.. ce qu'on voulait). Peut-être que toutes les méthodes de type addLayer & co sont toujours disponibles, mais à partir d'une instance générique à l'API (il suffirait de connaitre son nom..)
tbkgeo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 12h28   #9
Expert Confirmé

 
Homme Didier Richard
Ingénieur cartographe
Inscription : avril 2009
Messages : 2 734
Détails du profil
Informations personnelles :
Nom : Homme Didier Richard
Localisation : France, Val de Marne (Île de France)

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

Informations forums :
Inscription : avril 2009
Messages : 2 734
Points : 3 502
Points : 3 502
Citation:
Envoyé par tbkgeo Voir le message
Déjà, je ne sais pas si ce code est compatible API 1.3. Difficile de se lancer dans les DEV sachant que le code risque d'être obsolète dans quelques semaines..
Presque ...

Code :
overlays:{'kml':[{'nameOfOverlay':'/comresweb/206.kml', options:{}}]}
devra être en 1.3 :

Code :
1
2
overlays:{'kml':[{'name':'nameOfOverlay','url':'/comresweb/206.kml', options:{}}]}
Citation:
Envoyé par tbkgeo Voir le message
La mini s'affiche sur mon site (en recette), se positionne au bon endroit, mais le KML ne s'affiche pas.
Même serveur pour ce site et le KML, donc pas besoin de proxy.

Le KML répond en direct avec un navigateur, et google Maps arrive à l'afficher.. donc je pense qu'il est au bon format.
As-tu vérifier l'URL effectivement appelée par l'API ?

Citation:
Envoyé par tbkgeo Voir le message
Par contre, j'ai vu qu'il fallait appeler l'API en mode étendu..
Or http://api.ign.fr/geoportail/api/js/1.2-e/Geoportal.js n'existe pas.
Dans l'exemple KML sur le site IGN :
Appel dans le header : /geoportail/api?v=1.2&amp;key=1711091050407331029&amp;instance=viewer&amp;includeEngine=true&amp;
Pas de mode étendu non plus !?!
Aucun besoin de l'API étendu pour charger du KML, c'est une légende urbaine

Et pour l'URL mga_geo a répondu : GeoportalExtended.js

Citation:
Envoyé par tbkgeo Voir le message
J'ai testé le générateur de code, mais il affiche du code pour l'API 1.1, avec un proxy..
Et oui ...

Citation:
Envoyé par tbkgeo Voir le message
Bref, y a-t-il un mode étendu de l'API quand on l'appelle dans le BODY ?
Rien à voir avec le mode étendu, mais ceci fonctionne :

Code :
1
2
3
4
5
6
7
...
<body>
    ...
    <script type="text/javascript" src="http://api.ign.fr/geoportail/api/js/1.2/Geoportal.js" charset="utf8"></script>
    ...
</body>
Citation:
Envoyé par tbkgeo Voir le message
Voyez-vous un problème dans mon code qui empêcherait l'affichage des KML ?
Hormis de savoir quelle est l'URL appelée, non
Je continue à remonter la discussion ...
dgrichard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 12h32   #10
Expert Confirmé

 
Homme Didier Richard
Ingénieur cartographe
Inscription : avril 2009
Messages : 2 734
Détails du profil
Informations personnelles :
Nom : Homme Didier Richard
Localisation : France, Val de Marne (Île de France)

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

Informations forums :
Inscription : avril 2009
Messages : 2 734
Points : 3 502
Points : 3 502
Citation:
Envoyé par tbkgeo Voir le message
Faut-il en conclure que la version 1.2Extended n'est pas "KMLproof" ?
Ca me surprend... Est-ce ma façon d'appeler l'API qui perturbe l'inclusion KML ?
Absolument pas cela se saurait
Et oui, tu utilises une méthode prévue, mais expérimentale en 1.2 qui a été fixée en 1.3. C'est pour cela qu'il n'y avait pas d'exemple en 1.2 ...

Voir
dgrichard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 12h45   #11
Expert Confirmé

 
Homme Didier Richard
Ingénieur cartographe
Inscription : avril 2009
Messages : 2 734
Détails du profil
Informations personnelles :
Nom : Homme Didier Richard
Localisation : France, Val de Marne (Île de France)

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

Informations forums :
Inscription : avril 2009
Messages : 2 734
Points : 3 502
Points : 3 502
Citation:
Envoyé par tbkgeo Voir le message
Je ne comprends pas trop.. Tu me conseilles de laisser tomber la 1.2 et de développer en 1.3 ? Le loader.JS remonte une erreur quand on l'appelle directement. D'ailleurs, la doc indique qu'il ne faut pas l'appeler en direct, cette fonction.. Dans tous les cas, il semblerait que pas mal de choses ne fonctionnent pas en 1.3.. ou alors les paramètres par défaut ont considérablement changés.
Pour faire court : utilise uniquement pour tes dév le loader en 1.3. La version 1.3 montera en production lundi 20.

Citation:
Envoyé par tbkgeo Voir le message
- ANCIENNE METHODE
api?v=1.2-e&includeEngine=false + VERSION 1.2 + Geoportal.js + geoportalLoadTBKGEOVIEWER
=> TOUT EST OK (sauf qu'il s'agit d'une version à bannir..)
Pourquoi, cette méthode reste (et restera) toujours bonne et supportée. La présence du Geoportal.Load est juste pour faire rapidement une carte dans une page web ...

Citation:
Envoyé par tbkgeo Voir le message
Pour résumer, la seule méthode que j'ai réussi à faire tourner, c'est la version "à l'ancienne", que l'on nous demande d'éviter et qui ne sera pas compatible avec la prod d'ici peu. Et en plus, cette version oblige à charger dans le header, ce qui est consommateur pour mon utilisation (je voulais charger la map et son API une fois tout le reste chargé/exécuté sur ma page HTML..
Absolument pas, tu peux tout charger dans le body de ta page sauf :

* les CSS
* les META


Citation:
Envoyé par tbkgeo Voir le message
J'ai du louper quelque chose dans l'histoire, ça me surprend qu'on ne puisse pas afficher un KML sans passer par l'API Header (à la "nouvelle" méthode).
On peut et on pourra ...

En court:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<header>
...
<script src="http://api.ign.fr/geoportail/api?v=1.2&amp;k=CLEF&amp;includeEngine=false&amp;></script>
...
</header>
<body>
   <script src="http://api.ign.fr/geoportail/api/js/1.2/Geoportal.js"></script>
   <script type="text/javascript">
   $(document).ready(function() {
      ...
   });
   </script>
</body>
</html>
Ce qu'apporte 1.3, c'est de pouvoir ne plus utiliser :

Code :
1
2
<script src="http://api.ign.fr/geoportail/api?v=1.2&amp;k=CLEF&amp;includeEngine=false&amp;></script>
Citation:
Envoyé par tbkgeo Voir le message
A l'heure actuelle, je ne vois que 2 issues :
- soit en version 1.3 Geoportal.load prend de nouveaux paramètres pour l'affichage des boites à outil et des originators.. et je ne sais pas où les trouver (rien trouvé dans la doc 1.3)..
Oui, disons qu'une option telle viewerClass en 1.3 te permet d'avoir tous les outils (voir cet exemple)

Citation:
Envoyé par tbkgeo Voir le message
- soit en version 1.2 (et 1.3), nous avons accès à une instance "générique". Dans l'ancien code, tous les affichages se faisaient à partir de l'instance nommé dans l'appel de l'API (VISU, viewer.. ce qu'on voulait). Peut-être que toutes les méthodes de type addLayer & co sont toujours disponibles, mais à partir d'une instance générique à l'API (il suffirait de connaitre son nom..)
Oublies la 1.2 ...
dgrichard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 15h36   #12
Invité régulier
 
Inscription : février 2012
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 23
Points : 6
Points : 6
Par défaut Ca s'éclaircit

Merci tout d'abord pour toutes ces réponses, ça dégrossit la problématique.

Avant d'aller plus loin, juste 2 petites remarques :

Citation:
KML + API étendue = Légende urbaine
==> Urban legend fortement propagée par la FAQ IGN ;-)
https://api.ign.fr/geoportail/faq.do?faqSubjectId=2
Je copie/colle :
Citation:
Quel sont les différences entre API standard, étendue, et minimale ?
Dans l'entête de votre page html, vous avez une ligne qui indique en paramètre la version de l'API et votre clef:
<script type="text/javascript"src="http://api.ign.fr/geoportail/api?v=1.0-e&amp;key=5E7858619H43K264&amp;instance=VISU">
L'API minimale ne fournie que le droit de requêter les données.
La version standard gère la plupart des fonctions utilisées.
L'étendue donne accès aux fonctions d'importation de données et de flux tels que le KML et le WMS_C.
Plus de détails dans la documentation.
Faut-il en conclure que l'importation de flux KML ne veut pas signifier la même chose que l'affichage d'une couche KML ?
Ou alors la FAQ a une coquille ?
Je pense ne pas être le seul à avoir interprété la FAQ de la sorte...



Au sujet de la version "à l'ancienne" que je considérais comme obsolète, tu réponds :
Citation:
Pourquoi, cette méthode reste (et restera) toujours bonne et supportée. La présence du Geoportal.Load est juste pour faire rapidement une carte dans une page web ...
D'après tes nombreuses interventions sur le forum, et je crois certaines infos trouvées des tutoriaux, il est indiqué que l'appel de "geoportalLoad[INSTANCE]" devait être oublié, et que les futures versions n'utiliseraient plus cette notation, où le nom de la méthode à appeler dépendait du nom de l'instance déclarée lors du chargement de l'API.
Tu conseillais aux utilisateurs d'appeler désormais Geoportal.load() à la place.
Donc pour moi :
- http://api.ign.fr/geoportail/api?v=1...eEngine=false; = geoportalLoad[INSTANCE]() = à éviter
- http://api.ign.fr/geoportail/api/js/1.2/Geoportal.js = Geoportal.load() = à utiliser
C'est comme cela que je l'avais compris, je pense avoir fait un amalgame.
Dans tous les exemples, la seule solution proposée pour charger un KML, était d'utiliser l'API Header + geoportalLoad[INSTANCE]().



Revenons à nos moutons :
Code :
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
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>tbkgeo</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta http-equiv="cache-control" content="no-cache">
<script type="text/javascript">
function loadScript() {

	var script_geo = document.createElement('script');
	script_geo.type = 'text/javascript';
	script_geo.src = 'http://depot.ign.fr/geoportail/api/js/1.3/Geoportal.js';
	document.body.appendChild(script_geo);

	script_geo.onload=function(){

		var iv= null;
		iv = Geoportal.load(
			// div's ID:
			'GeoportalVisuDiv',
			// API's keys:
			['3091429671334396237'],
			{// map's center :
			// longitude:
			lon:4.2071,
			// latitude:
			lat:45.4103, 
			},
			// Zoom:
			13,
			//options:
			{
				language:'fr',
				viewerClass:Geoportal.Viewer.Default,
				overlays:{
					'kml':[{
						'name':'Le circuit',
						'url':'/comresweb/206.kml', 
						options:{ 
							minZoomLevel:11, 
							maxZoomLevel:13, 
							originators:[{pictureUrl:'/comresweb/images/aide-small.png',url:'http://www.touriloire.fr/',attribution:'Circuit distribué par TouriLoire'}],
							visibility:true
						}
						}]
				}
			}
		);
	}
}

window.onload = loadScript;
</script>
</head>
<body>  
VERSION 1.3 + Geoportal + Geoportal.load, le tout en chargement différé après "window.onload"
=> map OK, centrage OK, boite à outil OK, KML OK, originators ERREUR
  <div id="GeoportalVisuDiv" style="width:800px;height:600px;"></div>
</body>
</html>
Voilà donc le code remis à jour suite à tes interventions (et celles de mga_geo)
visible aussi temporairement sur :
http://bouffee-oxygene.touriloire.fr/tbkgeo.html

J'ai banni la version 1.2.
La date de livraison de la 1.3 pour le 20 est un scoop qui me ravit!

Attention, pour les internautes qui voudraient pomper ce code, ma méthode de chargement de l'API sur le WINDOW.ONLOAD n'engage que moi, et permet de charger l'API plus tard, donc avec un affichage de la map retardée. Donc ce n'est pas une référence !!

Pour le moment, tout semble OK, SAUF les originators.. invisibles en 1.3.
J'ai potassé les docs 1.3 de l'API (http://depot.ign.fr/geoportail/api/doc/1.3/jsdoc/ ) qui sont peu loquaces sur le sujet, sauf vis à vis de ça :
Geoportal.Control.Logo .. Si ça remplace l'ancienne notation, je ne sais pas comment l'appliquer à mon "overlays"...
Donc preneur d'info sur le sujet !!

Merci d'avance !
tbkgeo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2012, 16h49   #13
Expert Confirmé

 
Homme Didier Richard
Ingénieur cartographe
Inscription : avril 2009
Messages : 2 734
Détails du profil
Informations personnelles :
Nom : Homme Didier Richard
Localisation : France, Val de Marne (Île de France)

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

Informations forums :
Inscription : avril 2009
Messages : 2 734
Points : 3 502
Points : 3 502
Citation:
Envoyé par tbkgeo Voir le message
==> Urban legend fortement propagée par la FAQ IGN ;-)
https://api.ign.fr/geoportail/faq.do?faqSubjectId=2
Mouais ... remplace KML par GeoRSS et WMS-C par WFS

Citation:
Envoyé par tbkgeo Voir le message
Faut-il en conclure que l'importation de flux KML ne veut pas signifier la même chose que l'affichage d'une couche KML ?
Tu peux importer et afficher ou pas ...

Citation:
Envoyé par tbkgeo Voir le message
Ou alors la FAQ a une coquille ?
+1

Citation:
Envoyé par tbkgeo Voir le message
D'après tes nombreuses interventions sur le forum, et je crois certaines infos trouvées des tutoriaux, il est indiqué que l'appel de "geoportalLoad[INSTANCE]" devait être oublié, et que les futures versions n'utiliseraient plus cette notation, où le nom de la méthode à appeler dépendait du nom de l'instance déclarée lors du chargement de l'API.
Tu conseillais aux utilisateurs d'appeler désormais Geoportal.load() à la place.
Donc pour moi :
- http://api.ign.fr/geoportail/api?v=1...eEngine=false; = geoportalLoad[INSTANCE]() = à éviter
- http://api.ign.fr/geoportail/api/js/1.2/Geoportal.js = Geoportal.load() = à utiliser
C'est comme cela que je l'avais compris, je pense avoir fait un amalgame.
Va là pour plus d'informations qui monteront en production lundi ...

Citation:
Envoyé par tbkgeo Voir le message
Voilà donc le code remis à jour suite à tes interventions (et celles de mga_geo)
visible aussi temporairement sur :
http://bouffee-oxygene.touriloire.fr/tbkgeo.html
Voir cet exemple pour l'originators ...

Citation:
Envoyé par tbkgeo Voir le message
J'ai banni la version 1.2.
La date de livraison de la 1.3 pour le 20 est un scoop qui me ravit!
Très bien

Citation:
Envoyé par tbkgeo Voir le message
J'ai potassé les docs 1.3 de l'API (http://depot.ign.fr/geoportail/api/doc/1.3/jsdoc/ ) qui sont peu loquaces sur le sujet, sauf vis à vis de ça :
Geoportal.Control.Logo .. Si ça remplace l'ancienne notation, je ne sais pas comment l'appliquer à mon "overlays"...
Donc preneur d'info sur le sujet !!
Il faut parcourir les exemples taggués Standard (simple) pour avoir toute l'information. Ce modèle donne les points d'entrées des différentes options.
dgrichard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2012, 17h48   #14
Invité régulier
 
Inscription : février 2012
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 23
Points : 6
Points : 6
Par défaut merci

Citation:
Va là pour plus d'informations qui monteront en production lundi ...
Je lis, aucun des exemples d'intégration ne correspondent à mon cas (geoportail.load() ), mais je prends note !

Citation:
Voir cet exemple pour l'originators ...
Ahah, le coquin ! originators est donc désormais dans "params" lui-même dans "options", voilà une des évolutions de la 1.2 à 1.3. Testé, ça marche impecc.

Citation:
Ce modèle donne les points d'entrées des différentes options.
Exactement ce que je cherchais, ça va devenir ma bible.


C'est marrant qu'on ne trouve pas beaucoup d'adeptes de cette notation, je la trouve simplissime si on veut juste afficher une map avec une ou plusieurs layer. Un appel de la fonction geoportal.load qui initialise la map complétement : clés, centrage, zoom, boite à outils, layers.. En 10 lignes c'est torché, la maintenance est enfantine, que du bonheur.

Et tout cas merci pour le suivi. Et bon courage pour la 1.3 / 2.0.

Un autre POST verra sans doute le jour au sujet des "placemark" d'ici peu, dès que j'aurais écumé les docs sur le sujet..

Merci et bravo.
tbkgeo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h54.


 
 
 
 
Partenaires

Hébergement Web