Didacticiel : Publication d'un service KML
Vous pouvez diffuser un service KML de manière dynamique sur le Web en publiant un service de carte ArcGIS Server avec la fonctionnalité KML activée. Un client peut ainsi se connecter au service de carte et demander des données KML pour une zone géographique spécifique. Le service KML peut être exposé par l'intermédiaire des opérations REST Générer la carte, Générer des données KML et Requête ; du lien Afficher dans : Google Earth dans le répertoire des services ArcGIS ; ou d'un document de liaison réseau KML qui contient une URL correctement configurée vers le service.
Ce didacticiel vous invite à découvrir la procédure de création d'un service KML à l'aide d'entités 3D extrudées. Vous utilisez tout d'abord ArcGlobe afin de créer un fichier de couches avec des propriétés d'extrusion 3D. Vous ajoutez ensuite la couche dans ArcMap afin de définir la symbologie des couches et de configurer le texte descriptif qui sera associé aux entités de votre service KML. Puis, vous publiez la carte en tant que service avec la fonctionnalité KML activée. Enfin, vous créez un lien réseau KML sur votre serveur afin que d'autres puissent facilement accéder au service KML.
Préparation des données dans ArcGlobe et ArcMap
Pour publier des classes d'entités avec des attributs 3D, tels que des décalages de coordonnée z ou une extrusion basée sur des attributs, vous devez d'abord modifier les propriétés de la couche de classe d'entités dans ArcGlobe, les enregistrer sous la forme d'un fichier de couches, puis ajouter ce fichier à un document ArcMap. La procédure ci-dessous vous explique comment appliquer l'extrusion dans ArcGlobe et enregistrer un fichier de couches correspondant qui pourra être utilisé ultérieurement dans ArcMap.
- Démarrez ArcGlobe et ajoutez une classe d'entités.
- Dans la table des matières, cliquez avec le bouton droit sur la couche concernée, puis cliquez sur Propriétés.
- Cliquez sur l'onglet Extrusion du globe.
-
Cochez les options Extruder les entités de la couche et Ne pas afficher la face inférieure des polygones extrudés. Choisissez également d'appliquer l'extrusion en l'ajoutant à la hauteur minimale de chaque entité.
-
Définissez une Valeur ou expression utilisée pour l'extrusion. Ce paramètre détermine à quelle distance les entités apparaissent sur la carte. Si vous avez besoin d'aide pour élaborer l'expression, ouvrez le Générateur d'expressions (à l'aide du bouton qui ressemble à une calculette). Dans ce cas, les entités surfaciques sont extrudées en multipliant la valeur de l'attribut POP04_SQMI par 250 (valeur arbitraire sélectionnée à seule fin d'apparence), puis en ajoutant cette valeur à la hauteur de base de l'entité. Il vous faudra peut-être tester votre expression afin d'obtenir l'apparence que vous souhaitez.
- Une fois que l'extrusion est définie pour la couche et qu'elle semble tridimensionnelle, cliquez avec le bouton droit sur la couche et sélectionnez l'option Enregistrer comme fichier de couches. Enregistrez-la sur le disque, à un emplacement où les données sont accessibles en lecture par votre compte SOC ArcGIS Server.
- Maintenant que les propriétés 3D ont été définies pour les données, il est temps de définir les propriétés de la couche 2D. Ouvrez ArcMap et cliquez sur Ajouter des données.
- Sélectionnez le fichier de couches (.lyr) que vous venez d'enregistrer à partir d'ArcGlobe, puis cliquez sur Ajouter. La couche n'apparaît pas en 3D dans ArcMap ; elle apparaîtra en 3D lorsque vous afficherez la carte dans Google Earth ou ArcGIS Explorer.
- Définissez les propriétés de la couche en cliquant avec le bouton droit sur la couche et en sélectionnant Propriétés dans le menu contextuel.
-
Cliquez sur l'onglet Général et modifiez la dépendance d'échelle de la couche, puis entrez une description. Cette description sera utilisée pour la couche KML affichée dans les clients KML et pourra contenir tout code HTML valide.
-
Cliquez sur l'onglet Affichage et, au besoin, modifiez la transparence de la couche. Une légère transparence permet aux utilisateurs de voir au-dessous de la carte.
-
Cliquez sur l'onglet Symbologie et, au besoin, modifiez les propriétés de rendu. Un remplissage dégradé subtil peut vous aider à distinguer les entités 3D adjacentes.
-
Cliquez sur l'onglet Champs et définissez les champs qui doivent être accessibles par l'intermédiaire du service de carte. Vous pouvez également utiliser également l'alias KMLSnippet pour un champ de la classe d'entités. Les valeurs du champ que vous modifiez en vue d'utiliser l'alias KMLSnippet s'afficheront sous l'icône de chaque entité dans la table des matières d'un client KML. Les valeurs du champ d'alias KMLSnippet peuvent contenir un code HTML valide.
- Vous pouvez éventuellement déterminer les ensembles de définition ou les jointures et relations que vous souhaitez appliquer aux données. Pour ce faire, utilisez les onglets Ensemble de définitions et Jointures/relations, respectivement.
- Vous pouvez éventuellement cliquer sur l'onglet Etiquettes et définir l'étiquetage à appliquer. Le langage KML respecte les expressions de couleur, de taille et d'étiquette des entités ponctuelles. Il ne prend en revanche pas en charge l'étiquetage des lignes ou polygones.
-
Cliquez sur l'onglet Fiche HTML et cochez l'option Afficher le contenu pour cette couche à l'aide de l'outil Fiche HTML. Sélectionnez ensuite l'une des options de mise en forme. Cette option détermine la description KML de chaque entité ou, en d'autres termes, le contenu qui s'affiche dans l'info-bulle d'information lorsque vous cliquez sur une entité. Vous pouvez ajouter de la fantaisie à une description à l'aide du langage HTML, JavaScript ou de feuilles de style ou, si vous souhaitez simplement effectuer quelques essais, vous pouvez sélectionner l'option par défaut afin d'afficher la mise en forme HTML Comme table des champs visibles.
- Cliquez sur OK pour ignorer les propriétés de la couche, puis enregistrez votre carte (.mxd) en cliquant sur Fichier > Enregistrer.
Publication du service KML
Une fois la carte terminée, vous devez la publier sous forme d'un service de carte ArcGIS Server. Le service de carte peut générer le service KML, à condition que sa fonctionnalité KML soit activée, ce qui est le cas par défaut.
La procédure ci-dessous explique comment publier le service dans la fenêtre Catalogue d'ArcMap. Si vous souhaitez créer le service à l'aide du Gestionnaire, suivez la procédure correspondante dans la rubrique Publication d'une ressource SIG sur le serveur dans le gestionnaire.
- Toujours dans ArcMap, cliquez sur Fenêtres > Catalogue.
- Dans l'arborescence du catalogue, sélectionnez la carte (.mxd) à publier. Vous avez la possibilité d'exposer également les définitions de service de carte (fichiers .msd) en tant que service KML, si vous le souhaitez.
- Cliquez avec le bouton droit sur la carte et cliquez sur Publier sur un serveur ArcGIS.
- Nommez votre service et sélectionnez le dossier où il doit être publié. Cliquez ensuite sur Suivant.
- Sur la deuxième page de l'Assistant Publier sur un serveur ArcGIS, vous pouvez constater que la fonctionnalité KML est activée. Laissez-la activée et cliquez sur Suivant.
- Sur la troisième page de l'Assistant, passez en revue le récapitulatif de ce qui sera créé puis cliquez sur Publier.
- Votre service est désormais publié. Vous pouvez le prévisualiser en développant le nœud Serveurs SIG de l'arborescence du catalogue et en faisant glisser le service dans la table des matières d'ArcMap.
Configuration des propriétés pour le service KML
Après avoir publié le service KML, vous souhaiterez peut-être modifier ses propriétés par défaut. Pour ce faire, procédez comme suit :
- Dans l'arborescence du catalogue, cliquez avec le bouton droit sur le service, puis sélectionnez Arrêter.
- Cliquez avec le bouton droit de la souris sur le service et choisissez Propriétés du service.
- Cliquez sur l'onglet Fonctionnalités, puis sur KML (veillez à ne pas décocher la case).
-
Modifiez les propriétés dans le volet inférieur.
- Définissez la manière de limiter le KML renvoyé par le service KML. Les options Mode de compatibilité KML vous permettent de déterminer si seuls les sous-ensembles ciblés de la fonctionnalité doivent être inclus si le service est principalement destiné à être utilisé avec Google Maps ou Google Mobile. Ce paramètre peut accroître les performances.
- Définissez la manière de limiter les entités renvoyées par le service KML, la résolution en sortie et la taille d'image en sortie.
- Limitez la fréquence à laquelle un client peut demander un service à l'aide des options Utiliser la balise NetworkLinkControl.
- Cliquez sur OK pour fermer la boîte de dialogue Propriétés du service.
- Dans l'arborescence du catalogue, cliquez avec le bouton droit sur le service, puis sélectionnez Redémarrer.
Analyse des opérations REST KML exposées dans le répertoire des services ArcGIS Server
Chaque serveur ArcGIS Server expose par défaut un répertoire des services, qui vous permet d'explorer les services et d'interagir avec eux à l'aide de l'architecture REST. Utilisez le répertoire des services pour vous entraîner à interagir avec votre service KML.
- Affichez et sélectionnez le Répertoire des services ArcGIS dans un navigateur Web (URL : http://<nom du serveur ArcGIS Server>/<nom d'instance ArcGIS Server>/rest/services). Par exemple : http://MyServer/ArcGIS/rest/services.
- Remarquez le lien Afficher les emprises dans : Google Earth qui affiche les emprises de tous les services dotés d'une étendue géographique.
- Dans le Répertoire des services, cliquez sur le lien menant à votre service récemment publié.
- Cliquez sur le lien Afficher dans : Google Earth pour ouvrir un document KMZ qui affiche une superposition terrestre de votre service. Si votre service est mis en cache, une super-superposition compatible avec les régions KML s'affiche. Notez que ce lien ne renvoie aucun vecteur.
- Dans le Répertoire des services, cliquez sur une couche de votre service.
- Au bas de votre page, cliquez sur le lien Requête. Un formulaire s'affiche, où vous pouvez préciser plusieurs paramètres pour interroger une couche. La dernière option correspond au format dans lequel vous souhaitez recevoir la réponse. Sélectionnez KML si vous souhaitez recevoir un document KMZ contenant les résultats de votre requête.
- Revenez sur la page de votre service dans le Répertoire des services.
- Au bas de votre page, cliquez sur Générer le KML. Ce lien affiche un formulaire Web dans lequel vous pouvez sélectionner les couches à renvoyer dans le KML. Vous pouvez également choisir de renvoyer dynamiquement des vecteurs de votre service en sélectionnant l'option Les couches vectorielles en tant que vecteurs et les couches raster en tant qu'images.
Publication d'un lien réseau
Vous pouvez rendre le KML accessible sur votre serveur dans un format convivial en publiant un lien réseau KML. Pour ce faire, vous utilisez le Gestionnaire. Vous pouvez ensuite ajouter le lien réseau dans ArcGIS Explorer ou Google Earth.
- Connectez-vous au gestionnaire ArcGIS Server.
- Cliquez sur l'onglet Services, puis sur Liens réseau KML.
- Cliquez sur Créer un lien réseau.
- Saisissez un nom et, éventuellement, des descriptions abrégées et longues pour votre KML. Cliquez ensuite sur Suivant.
- Dans la liste déroulante Service de carte, sélectionnez le service de carte que vous venez de publier. Sélectionnez également les couches à exposer par l'intermédiaire du lien réseau KML.
- Sélectionnez l'option permettant de dessiner Les couches vectorielles en tant que vecteurs et les couches raster en tant qu'images. Vos entités extrudées étant des vecteurs, vous devez sélectionner cette option. Sinon, une image rastérisée aplatie s'affichera. Cliquez sur Suivant.
- Sur cette dernière page de l'Assistant, vous pouvez définir les paramètres Actualiser, Affichage et Nom d'hôte, si vous le souhaitez. Vous pouvez en outre choisir de supprimer le comportement par défaut des extraits KML, qui consiste à ajouter les deux premières lignes de la description à chaque entité de la table des matières. Dans le cadre de ce didacticiel, vous pouvez accepter toutes les valeurs par défaut.
- Cliquez sur Terminer pour créer le lien réseau KML. Lorsque vous revenez à la page Liens réseau KML dans le Gestionnaire, l'URL de votre nouveau lien réseau s'affiche (par exemple : http://myServer/ArcGIS/kml/networklink1.kmz). Cliquez ou copiez et collez cette URL pour ajouter votre lien réseau KML à Google Earth ou à ArcGIS Explorer.