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
|
/**
* Property: key
*
* The API key to use
*/
var APIkey= "XXXX";
/**
* Property: viewer
* {<Geoportal.Viewer>} the viewer global instance.
*/
viewer = null;
// la couche vecteur qui héberge les poi
var vector_layer= null ;
var i =1;
function add_poi(long,lat,url)
{
var point = new OpenLayers.Geometry.Point(parseFloat(long),parseFloat(lat));
// Passage en projection Géoportail
var sourceproj = OpenLayers.Projection.CRS84; // WGS84
var destproj = viewer.projection; // projection Geoportail
point.transform(sourceproj, destproj);
// Création du POI à partir du point
stylepoi = {externalGraphic:'360Icon.png', graphicWidth:29, graphicHeight:37 };
var mon_poi = new OpenLayers.Feature.Vector(point, {id: i, url: "http://google.com"}, stylepoi);
// Ajout du POI à la couche créée et affichage de la couche
vector_layer.addFeatures([mon_poi]);
}
/**
* Function: initMap
* Load the application. Called when all information have been loaded by
* <loadAPI>().
*/
function initMap() {
// ----- Traduction
var options= {
mode:'normal',
territory:'FXX',
proxy:'assets/proxy.php?url=',
projection:''
};
viewer = new Geoportal.Viewer.Default('viewerDiv', OpenLayers.Util.extend(
options,
// API keys configuration variable set by <Geoportal.GeoRMHandler.getConfig>
// variable contenant la configuration des clefs API remplie par <Geoportal.GeoRMHandler.getConfig>
window.gGEOPORTALRIGHTSMANAGEMENT===undefined? {'apiKey':APIkey} : gGEOPORTALRIGHTSMANAGEMENT)
);
if (!viewer) {
// problem ...
OpenLayers.Console.error(OpenLayers.i18n('new.instance.failed'));
return;
}
// ----- Layers
viewer.addGeoportalLayers(['ORTHOIMAGERY.ORTHOPHOTOS','GEOGRAPHICALGRIDSYSTEMS.PLANIGN']);
// ----- Autres
viewer.getMap().setCenterAtLonLat(7.477501,48.307287,8);
var viewerDiv = document.getElementById("viewerDiv");
viewerDiv.style.height = "100%";
$(".gpControlToolBox").attr("style", "display:none");
$(".gpControlLayerSwitcher").attr("style", "display:none");
$(".gpControlInformation").attr("style", "display:none");
// ne créer qu'une seule Couche vecteur pour tous les POI :
vector_layer = new OpenLayers.Layer.Vector("PANO");
// Ajout de la couche à la carte
viewer.getMap().addLayer(vector_layer);
vector_layer.events.on({
'featureselected': function(feature) {
window.location= feature.attributes.url ;
},
'featureunselected': function(feature) {
}
});
//Adding 360°
add_poi(7.479801177978515, 48.5752371237077);
add_poi(7.428013086318969, 48.38241033091097);
add_poi(7.420846223831177, 48.32273752938259);
add_poi(7.325713634490968, 48.15469203968349);
add_poi(7.287282943725586, 48.12360516952221);
add_poi(7.295737266540528, 48.03960042854258);
add_poi(7.241363525390626, 47.953619191663535);
//Bring the "vignerons" layer to front
// layersMarkers ? ça ne serait pas plutôt vector_layer ?
viewer.getMap().raiseLayer(layerMarkers, viewer.getMap().layers.length);
}
/**
* Function: loadAPI
* Load the configuration related with the API keys.
* Called on "onload" event.
* Call <initMap>() function to load the interface.
*/
function loadAPI() {
// wait for all classes to be loaded
// on attend que les classes soient chargées
if (checkApiLoading('loadAPI();',['OpenLayers','Geoportal','Geoportal.Viewer','Geoportal.Viewer.Default'])===false) {
return;
}
Geoportal.GeoRMHandler.getConfig([APIkey], null,null, {
onContractsComplete: initMap
});
} |
Partager