Le processus de démarrage de JMap Web
Avant d'aborder la création d'une extension JMap Web, cette section du document va expliquer le processus de démarrage de JMap Web.
Note : Cette section fait référence au modèle d'application JMap Web tel qu'il est inclus au moment de l'installation de JMap Serveur. Ce processus, brièvement décrit ici, va être différent si vous choisissez d'ajouter un déploiement JMap Web au sein de votre propre application web existante. Pour plus de détails, consultez la section Intégrer JMap Web dans votre propre application de ce document. |
Les fichiers du modèle d'application JMap Web sont disponibles sous le répertoire $JMAP_HOME$/applications/templates/html/web.
index.jsp
Ceci est le document web qui sera servi par JMap Serveur lorsque l'application sera demandée par l'utilisateur. Ouvrez ce fichier dans un éditeur de texte. Comme vous pouvez le remarquer, jQuery et jmap.min.js sont chargés dans la balise head du document.
Plus bas. la carte est initialisée lorsque le document sera prêt à être manipulé.
$(document).ready(function() { |
JMap.initialize(map, options)
La fonction JMap.initialize est définie dans le fichier jmap.min.js. Elle charge toutes les dépendances nécessaires et va ensuite initialiser tous les objets requis par l'application. Parmi ces objets, JMap.app et JMap.app.map qui demeureront globalement disponibles.
L'objet JMap.app est une instance de la classe Application de la bibliothèque core. L'objet JMap.app.map est une instance de la classe OpenLayers.Map.
Paramètres |
Description |
map |
Requis {String} L'élément ou l'identifiant d'un élément existant sur la page qui va contenir la carte. |
options |
Requis {Object} Doit au minimum fournir une propriété jmapUrl {String}. Supporte les clefs de propriétés suivantes: •jmapUrl: Requis. {String} L'adresse de votre déploiement JMap Web. •mapConfig: {Object} Options additionnelles assistant la configuration de la carte. •onMapInit: {Function} Handler qui sera appelé une fois que le processus d'initialisation de la carte est complété. Pratique afin d'ajouter de nouveaux contrôles OpenLayers une fois que la bibliothèque OpenLayers sera chargée. |
L'objet mapConfig peut inclure les clefs de propriétés suivantes afin de personnaliser l'application. La valeur par défaut est identifiée en gras.
Propriétés du mapConfig |
Description |
Options de la carte |
|
displayUnits |
null | ’m’ | ’km’ | ’ft’ | ’mi’ | ’in’ | ’°’ {String} L'unité de la carte. Par défaut sera la valeur du projet JMap. |
initialZoom |
null {Array} Coordonnées géographiques qui décrivent l'étendue: [gauche, bas, droite, haut] |
mapUnits |
null | ’m’ | ’km’ | ’ft’ | ’mi’ | ’in’ | ’°’ {String} L'unité de la carte. Par défaut sera la valeur du projet JMap. |
maximumExtent |
null {Array} Coordonnées géographiques qui décrivent l'étendue: [gauche, bas, droite, haut] |
projection |
null {Object} Si fourni, l'objet doit inclure une propriété String code qui correspond à un code EPSG. |
Couches additionnelles |
|
addShowPositionLayer |
true | false |
Services au démarrage |
|
activateGeolocationServiceOnLaunch |
true | false |
loadGoogleMapsApiOnLaunch |
true | false - Sera automatiquement remplacé à true si le déploiement contient au moins une couche Google ou si au moins un parmi ceux-ci est vrai : addGoogleDirections, addGoogleGeocoding, addGoogleStreetView. |
Options de la carte et de la navigation |
|
addGeolocateButton |
true | false |
addInitialViewButton |
true | false |
addMapOverview |
true | false |
addMousePosition |
true | false |
addPanControls |
true | false |
addScaleBar |
true | false |
addZoomInButton |
true | false |
addZoomOutButton |
true | false |
isMapOverviewMaximized |
true | false |
Outils JMap |
|
addInfoReportTool |
true | false |
addMeasureAreaTool |
true | false |
addMeasureDistanceTool |
true | false |
addMeasureCircularAreaTool |
true | false |
addMouseOverTool |
true | false |
addRedLiningTool |
true | false |
Fonctionalités d'édition JMap |
|
addEditionTools |
true | false |
addEditionCreateElementTools |
true | false - La propriété addEditionTools doit également être true pour que ceci prenne effet. |
addEditionSelectElementTool |
true | false - La propriété addEditionTools doit également être true pour que ceci prenne effet. |
addEditionShowElementFormButton |
true | false - La propriété addEditionTools doit également être true pour que ceci prenne effet. |
Fonctionalités de sélection JMap |
|
addSelectionTools |
true | false |
addCircleSelectionTool |
true | false - La propriété addSelectionTools doit également être true pour que ceci prenne effet. |
addLineSelectionTool |
true | false - La propriété addSelectionTools doit également être true pour que ceci prenne effet. |
addPointSelectionTool |
true | false - La propriété addSelectionTools doit également être true pour que ceci prenne effet. |
addRectangleSelectionTool |
true | false - La propriété addSelectionTools doit également être true pour que ceci prenne effet. |
addShapeSelectionTool |
true | false - La propriété addSelectionTools doit également être true pour que ceci prenne effet. |
Autres fonctionalités |
|
addFullScreenButton |
true | false |
addLayersMainMenuItem |
true | false |
addLogo |
true | false |
addLogoutAsideMenuLink |
true | false |
addParametersAsideMenuLink |
true | false |
addPrintButton |
true | false |
addSearchMainMenuItem |
true | false |
Fonctionalités de tiers |
|
addGoogleDirections |
true | false |
addGoogleGeocoding |
true | false |
addGoogleStreetView |
true | false |
Après le processus d'initialisation
Une fois que la carte est initialisée avec succès, vous pouvez l'accéder à l'aide de JavaScript en utilisant la variable globale JMap.app.map.
La manipulation de la carte sera possible en accédant à la variable globale JMap.app.map. Cette variable est l'instance de OpenLayers.Map en utilisation. Vous pouvez également interagir avec elle en utilisant l'API d'OpenLayers.
Paramètres d'URL
JMap Web supporte les paramètres d'URL suivants:
autozoom {String}
Ce paramètre permet de spécifier une étendue sur laquelle la vue de la carte sera initialisée. Deux types d'autoZoom peuvent être utilisés, region ou object. Le type est déterminé par le premier argument 'type'.
Types d'AutoZoom |
Description |
Region |
L'utilisateur précise la zone visible en décrivant un rectangle... Syntaxe: “type;x;y;width;height” •type: {String} Le type de la requête. Dans ce cas, doit être “region”. •x: {Number} La valeur X de la coordonnée inférieure gauche du rectangle. •y: {Number} La valeur Y de la coordonnée inférieure gauche du rectangle. •width: {Number} La largeur du rectangle. •height: {Number} La hauteur du rectangle. Exemple: ?autozoom=region;9;39;20;20 |
Object |
L'utilisateur précise un objet sur lequel il veut faire le zoom... Syntaxe: “type;layerName;field;value;maxScale” •type: {String} Le type de la requête. Dans ce cas, doit être “object”. •layerName: {String} Le nom de la couche qui contient l'objet sur lequel on veut faire le zoom. •field: {String} Le champs qui contient la valeur de l'objet sur lequel on veut faire le zoom. •value: {Number | String} La valeur spécifique de l'objet sur lequel on veut faire le zoom. Si le champs est une chaîne de caractères, utilisez ' '. Voir l'exemple plus bas. •maxScale: {Number, optionnel} L'échelle maximale que la carte doit respecter lorsqu'elle affiche les résultats. Exemple d'une valeur numérique: ?autozoom=object;citiesLayer;city_id;1032 Exemple d'une valeur chaîne de caractères: ?autozoom=object;citiesLayer;city_name;'montreal';15 |