Bonjour,
Nous sommes en train d'intégrer l'API Géoportail de l'IGN dans l'environnement de développement Powerbuilder de SAP/Sybase.
L'objectif est simple : nous devons afficher une carte IGN (couche carte + couche photo), centrée sur un point donné et avec ses outils standards de navigation, et récupérer dans l'application appelante les coordonnées (longitude/latitude) du point cliqué par l'utilisateur.
Nous avons écrit une page HTML (cf code ci-dessous), l'avons installée sous IIS : ca marche parfaitement.
L'application sous PowerBuilder se connecte à cette même page sur ce même serveur IIS via un contrôle OLE "Microsoft Web Browser". Dans un premier temps, cette page se charge et fonctionne bien. Le problème survient quand on quitte cette page : l'erreur s'affiche (cf pièce jointe), et une fois qu'elle s'est affichée, elle se réaffiche systématiquement quand on ré-essaye d'ouvrir la page. Pour retrouver un fonctionnement "normal", il suffit d'effacer tout l'historique de navigation sous InternetExplorer - mais cela ne fait que réparer le premier chargement de la page, puisque l'erreur réapparait à la fermeture de la page et aux ré-ouvertures suivantes.
Quelqu'un aurait-il une idée de l'origine de cette erreur et de comment nous pouvons la régler ?
Merci
Bruno
Code de la page HTML :
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>IGN</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta id="SybLatt" name="SybLatt" content=""/>
<meta id="SybLong" name="SybLong" content=""/>
<link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico"/>
<style type="text/css">
div#viewerDiv {width:800px; height:600px; background-color:white; background-position:center center; background-repeat:no-repeat; background-image:url(http://api.ign.fr/geoportail/api/js/latest/theme/geoportal/img/loading.gif);}
</style>
<script type="text/javascript" src="http://api.ign.fr/geoportail/api/js/latest/Geoportal.js"></script>
<script type="text/javascript">
var iv= " + string(now()) + ";
window.onload= function() {
iv= Geoportal.load( 'viewerDiv', ['8h332erd0cnbf39x6kmx4uva'], {place:"Touille"}, 10,
{//LoaderOptions
language:'fr',
viewerClass:'Geoportal.Viewer.Default',
onView: function() {
OpenLayers.Control.Click= OpenLayers.Class(OpenLayers.Control, {
defaultHandlerOptions:{'single': true, 'double': false, 'pixelTolerance': 0, 'stopSingle': false, 'stopDouble': false},
initialize: function(options) {
OpenLayers.Control.prototype.initialize.apply(this,arguments);
this.handlerOptions= OpenLayers.Util.extend({},this.defaultHandlerOptions);
this.handler= new OpenLayers.Handler.Click(this, {'click': this.trigger}, this.handlerOptions);
},
trigger: function(e) {
var lonlat= this.map.getLonLatFromViewPortPx(e.xy).transform( this.map.getProjection(), OpenLayers.Projection.CRS84);
document.getElementById("SybLatt").setAttribute("content",lonlat.lat.toString() );
document.getElementById("SybLong").setAttribute("content",lonlat.lon.toString() );
}
});
var monClic= new OpenLayers.Control.Click({autoActivate:true});
this.getViewer().getMap().addControl(monClic);
}
}
);
};
</script>
</head>
<body>
<div id="viewerDiv"></div>
</body>
</html>
Partager