Personnalisation de la carte de recherche
La carte de recherche est référencée dans le fichier \\geoportal\WEB-INF\classes\gpt\config\gpt.xml. Ce même service est également utilisé pour la page Aperçu, la page Détails, les formulaires de l'éditeur de métadonnées, mais pas pour une page de téléchargement personnalisée. La carte est appelée sur l'interface par l'API JavaScript d'ArcGIS Server. Cette rubrique traite du changement du type de service de carte de recherche utilisé, de la modification de l'étendue initiale de la carte, des facteurs à prendre en compte lors de la configuration de la carte de recherche et de la procédure de modification des dimensions de la carte de recherche sur la page de recherche.
Modification du service de carte de recherche
Pour modifier le service de carte de recherche, ouvrez le fichier \\geoportal\WEB-INF\classes\gpt\config\gpt.xml et mettez à jour mapServiceUrl afin de référencer un autre service.
Important : dans Geoportal Server versions 0.9 à 1.1.1, seuls les services de serveur de carte ArcGIS Server sont pris en charge. Depuis Geoportal version 1.2, quatre types de services sont pris en charge ; des paramètres supplémentaires doivent être configurés dans le fichier gpt.xml pour les services WMS ou OpenStreetMap :
Extrémité REST du serveur de carte d'ArcGIS Server
Prise en charge dans toutes les versions de Geoportal Server. Il doit s'agir d'une URL REST. Elle ne peut pas être une URL SOAP. Le paramètre mapServiceType doit être défini sur "dynamic" ; si vous le définissez sur "tiled", les fonctions de zoom de la carte Javascript ne seront pas rendues correctement. De plus, les services ArcGIS Online sont disponibles pour ce paramètre si votre organisation n'a pas de préférence particulière concernant un service ArcGIS à utiliser.
Exemple de configuration de l'élément interactiveMap :
- mapServiceUrl="http://serverName/arcgis/rest/services/serviceName/MapServer"
- mapServiceType="dynamic"
URL de service WMS
Prise en charge pour Geoportal Server version 1.2. Pour une URL de service WMS, la chaîne "?request=GetCapabilities&service=WMS" spécifique à l'OGC ne doit pas être incluse. Un élément facultatif appelé mapVisibleLayers est disponible ; mapVisibleLayers est un tableau de noms de couches WMS visibles. Ce paramètre doit être défini uniquement lorsque WMS est utilisé comme service de carte. Les noms de couches se trouvent dans l'élément name du xml WMS GetCapabilities.
Exemple de configuration de l'élément interactiveMap :
- mapServiceUrl="http://serverName/arcgis/services/serviceName/WMSServer"
- mapServiceType="wms"
- mapVisibleLayers="['nameA','nameB','nameC']"
URL de service WMTS
Prise en charge pour Geoportal Server version 1.2. Pour une URL de service WMTS, la chaîne "?request=GetCapabilities&service=WMST" spécifique à l'OGC ne doit pas être incluse. La prise en charge de wmts est très générique ; certains scénarios plus élaborés nécessiteraient des algorithmes personnalisés pour pouvoir gérer certains services WMTS. L'implémentation de tels algorithmes a été laissée à la discrétion de votre organisation. Reportez-vous à l'adresse WMTSLayer pour obtenir une référence à l'API ou aux adresses WMTS layer et WMTS - resource info pour en savoir plus sur la personnalisation par programmation de la prise en charge de WMTS.
Exemple de configuration de l'élément interactiveMap :
- mapServiceUrl="http://v2.suite.opengeo.org/geoserver/gwc/service/wmts"
- mapServiceType="wmts"
Service OpenStreetMap
Prise en charge pour Geoportal Server version 1.2. Pour OpenStreetMap, laissez mapServiceUrl vide.
Exemple de configuration de l'élément interactiveMap :
- mapServiceUrl=""
- mapServiceType="openstreet"
Points importants à prendre en compte pour le service de carte
Assurez-vous que le service de carte de recherche que vous utilisez prend en compte les éléments suivants :
- Les services projetés sont pris en charge, mais avec des conséquences. Étant donné que les enveloppes et les recherches de document de métadonnées sont basées sur les coordonnées du système de coordonnées géographiques opposées, les coins opposés ne peuvent pas être tracés dans un rectangle projeté. Ceci causera des instances où les résultats de recherche ne correspondent pas aux critères visibles. Afin d'utiliser un service projeté, l'attribut geometryServiceUrl doit être défini sur la balise <interactiveMap>.
- N'utilisez pas des services de carte ayant une référence spatiale non définie en utilisant un ID bien connu (WKID). Étant donné que la carte de recherche est basée sur l'API JavaScript, les limites de l'API JavaScript s'appliqueront à la carte de recherche. Il y a un problème connu avec l'API JavaScript prenant en charge uniquement les systèmes de coordonnées définis par un WKID. Il est possible que la référence spatiale d'une carte soit également définie comme une chaîne de définition (WKT), mais cela entraînera des comportements étranges dans la carte de recherche. Par exemple, vous ne pouvez pas voir une emprise des enregistrements de métadonnées sur la page de recherche, vous ne pouvez pas définir l'enveloppe pour les métadonnées créées / modifiées sur le formulaire Créer des métadonnées et l'Aperçu échouera pour l'affichage des services 'graphiques', tels que GeoRSS ou KML / KMZ.
- Pour les versions 1.0 et 1.1.x uniquement : si vous prévoyez d'utiliser un service de carte pour votre carte de recherche qui utilise un système de coordonnées autre que WGS 1984 - EPSG 4326, vous devez définir le paramètre jsapiUrl dans le fichier gpt.xml pour référencer l'API JavaScript de version 1.6 au lieu de la version par défaut 2.0.
Modifier l'étendue initiale de la carte
Par défaut, l'étendue initiale de la carte du géoportail est identique à celle du service lui-même. Dans la version 1.2 de Geoportal Server, il est possible de définir l'étendue initiale de la carte, et ainsi remplacer celle du service. Cette fonctionnalité est disponible pour tout service, qu'il soit de type "dynamic", "openstreet", "wms" ou "wmts". Cependant, cette opération a seulement une incidence sur la carte sur la page de recherche et la page d'aperçu ; elle n'est pas activée sur la page de détails des métadonnées (qui effectue déjà un zoom sur l'enveloppe), ni sur l'éditeur de métadonnées (qui effectue un zoom sur l'enveloppe lors de la modification de métadonnées existantes ou utilise une autre méthode pour définir l'étendue initiale lors de la création de métadonnées).
Procédure de configuration de l'étendue initiale
Dans l'élément interactiveMap du fichier gpt.xml, ajoutez un attribut "mapInitialExtent". La valeur de cet attribut est une définition compatible avec JSON de l'étendue de l'API JavaScript d'Esri (voir Etendue).
Exemple : <interactiveMap mapInitialExtent="xmin:0,ymin:0,xmax:90,ymax:45,spatialReference:{wkid:4326}"
Modification des dimensions de la Carte de recherche
Si vous modifiez la carte de recherche par défaut qui s'affiche sur la page de recherche, vous devez modifier les dimensions du conteneur de carte même pour mieux correspondre à la zone géographique. Vous trouverez le code de la page de recherche dans le fichier \\geoportal\catalog\search\criteria.jsp .
- Ouvrez le fichier \\geoportal\catalog\search\criteria.jspdans un éditeur de texte.
- Naviguez vers le div qui a un id d'interactiveMap.
- Le div a une largeur et une hauteur associées spécifiées dans son attribut de style. Modifiez les valeurs de largeur et de hauteur si nécessaire.
- Le div qui détient l'interactiveMap a un div parent qui crée la bordure autour de la carte. Si vous modifiez les dimensions du div enfant, vous devez également mettre à jour les dimensions de ce div parent. Localisez la déclaration div immédiatement au-dessus du div interactiveMap. Modifiez les valeurs de largeur et de hauteur de l'attribut de style si nécessaire.
- Vous trouverez ci-dessous un exemple où la hauteur et la largeur sont changées à
537 pixels et 360 pixels respectivement :
<f:verbatim> <div id="locatorCandidates" class="locatorCandidates"></div> <div style="width: 537px; height: 360px; margin-top: 1px; border: 1px solid #000000;"> <div id="interactiveMap" dojotype="dijit.layout.ContentPane" style="width:537px; height:360px; cursor:pointer; cursor:pointer;"></div> </div> </f:verbatim>
- Il est également important de modifier la largeur de la taille de la page du Géoportail pour accueillir votre carte plus grande. Afin de modifier la largeur, ouvrez le fichier preview.css dans le dossier
\\geoportal\catalog\skins\themes\[color theme]. Dans ce fichier, augmentez la taille de la page en ajustant la valeur de largeur. Dans l'exemple ci-dessous, la largeur est augmentée de 880 px à 980 px :
div#gptMainWrap { width: 980px;
- Enregistrez les fichiers modifiés, redémarrez l'application Web du géoportail, puis ouvrez une nouvelle fenêtre du navigateur de votre Géoportail pour voir si la modification a été prise en compte.
Vous avez un commentaire à formuler concernant cette rubrique ?