Skip To Content

Publier des couches de tuiles hébergées

Les couches de tuiles publiées et hébergées sur votre portail prennent en charge la visualisation rapide de jeux de données volumineux grâce à un ensemble d'images de carte prédessinées ou de tuiles. Les tuiles hébergées fournissent un contexte géographique pour vos couches opérationnelles. Par exemple, vous pouvez inclure des tuiles de rues de votre voisinage pour offrir une référence visuelle pour les panneaux de votre couche d'entités.

Vous pouvez publier une couche de tuiles à héberger sur votre portail à l'aide des méthodes suivantes :

Vous pouvez créer un cache sur vos tuiles automatiquement au moment de la publication ou le créer manuellement après la publication. Reportez-vous à la rubrique Pratiques conseillées pour les caches de tuiles pour plus d'informations.

Vous devez disposer des privilèges appropriés pour créer du contenu et publier des couches de tuiles hébergées afin de publier une carte ou un fichier de définition de service en tant que couche de tuiles hébergée.

Définir et publier une carte dans ArcMap

A partir d'ArcMap, vous pouvez publier une couche de tuiles à héberger sur votre portail.

Vérifiez qu'ArcGIS for Desktop est connecté à votre portail avant de démarrer ArcMap.

  1. Démarrez ArcMap et ouvrez la carte à publier.
  2. Connectez-vous à votre portail avec un compte détenteur des privilèges requis pour créer du contenu et publier des couches de tuiles hébergées.
    1. Cliquez sur Fichier > Se connecter.
    2. Saisissez le nom d'utilisateur et le mot de passe du portail, puis cliquez sur Se connecter.
  3. Publiez maintenant la carte.
  4. Cliquez sur Fichier > Partager en tant que > Service.
  5. Sélectionnez Publier un service et cliquez sur Suivant.
    Attention :

    Si vous choisissez de remplacer le service à la place, l'élément de tuile de carte existant est supprimé du portail et un nouvel élément de même nom est créé. Le nouvel élément est créé dans le dossier racine et un nouvel ID lui est attribué. Vous devez reconfigurer le partage et, le cas échéant, redéplacer l'élément dans le dossier dans lequel il se trouvait avant la republication.

  6. Dans la liste déroulante des types de connexion, sélectionnez Mes services hébergés. Saisissez ensuite un nom pour vos tuiles et cliquez sur Continuer.
  7. Définissez les propriétés voulues dans l'Editeur de services. Ici, vous pouvez choisir ce que les utilisateurs peuvent faire avec vos tuiles et contrôler en détail la manière dont le serveur les exposera.

    Pour savoir comment configurer au mieux vos tuiles à des fins de déploiement, reportez-vous à la rubrique Optimisation et configuration des services de l'aide d'ArcGIS for Server. Certaines des propriétés mentionnées dans cette rubrique s'appliquent uniquement à ArcGIS for Server et ne sont pas disponibles pour les couches de tuiles hébergées.

    Astuce:

    Si vous fermez l'Editeur de service pendant cette session, vous serez invité à enregistrer votre travail en tant que service de brouillon. Les services de brouillon vous permettent de reprendre ultérieurement votre travail de configuration d'un service. Les brouillons sont enregistrés par défaut dans le dossier Brouillons de votre connexion à Mes cartes hébergées. Pour plus d'informations, reportez-vous à la rubrique A propos des services de brouillon de l'aide d'ArcGIS for Server.

  8. Vous devez toutefois définir un certain nombre de propriétés propres aux couches de tuiles hébergées. Elles sont détaillées dans la procédure qui suit.
  9. Dans la fenêtre gauche de l'éditeur de services, cliquez sur Fonctionnalités, puis sélectionnez Appariement tuilé pour exposer votre carte en tant que couche de tuiles. Cochez Accès aux fonctions pour publier une couche d'entités avec vos tuiles si vous souhaitez configurer des fenêtres contextuelles pour la couche lorsque vous l'ajoutez à la visionneuse de carte.

    Vous pouvez cliquer sur le sous-élément Appariement tuilé dans le volet gauche de l'Editeur de services pour définir des propriétés avancées liées aux fonctions que les clients peuvent mettre en œuvre avec la couche de tuiles publiée.

  10. Cliquez sur l'élément Mise en cache pour définir les propriétés du cache de tuiles. Reportez-vous à la rubrique Création d'un cache de carte dans l'aide d'ArcGIS for Server pour plus de précisions, en tenant compte du fait que certains des paramètres avancés de mise en cache sont uniquement disponibles en cas de publication directe dans ArcGIS for Server.
  11. Dans la fenêtre gauche de l'éditeur de services, cliquez sur Description d'élément et indiquez un résumé et des balises pour votre couche de tuiles. Vous devez entrer ces informations avant de publier. Pour plus d'informations, reportez-vous à la section consacrée à la description des éléments dans la rubrique Définition des propriétés des services de carte dans l'aide d'ArcGIS for Server.
  12. Dans le volet gauche de l'Editeur de services, cliquez sur Partage et sélectionnez les personnes avec lesquelles partager la couche de tuiles hébergée. Par défaut, votre couche de tuiles hébergée est partagée uniquement sur Mon contenu et vous seul pouvez y accéder. Votre couche de tuiles restera toujours visible dans Mon contenu, mais vous pouvez choisir de la partager avec tout le monde, avec des membres de votre organisation ou seulement avec les membres de certains groupes.
  13. Dans l'éditeur de services, cliquez sur Analyser Analyser.

    Cette fonction examine la carte pour voir si elle peut être publiée. Vous devez corriger les Erreurs Erreur dans la fenêtre Préparation avant de pouvoir publier. Vous pouvez éventuellement traiter les avertissements et les messages informatifs pour optimiser les performances et l'apparence de vos tuiles publiées. Pour plus d'informations sur la résolution de ces problèmes, reportez-vous à la rubrique Analyse de votre ressource SIG dans l'aide d'ArcGIS for Server.

  14. Vous pouvez également cliquer sur Aperçu Aperçu dans l'éditeur de services. Cela peut vous donner une idée de l'apparence de votre couche de tuiles sur le Web.
  15. Une fois les erreurs et, éventuellement, les avertissements et messages résolus, cliquez sur Publier Publier.
    Remarque :

    Vos données sont copiées sur le serveur à ce stade. La taille des données et la vitesse et la bande passante de votre connexion réseau déterminent le temps nécessaire à la publication. Vous devez également anticiper le délai de génération de vos tuiles.

Dès lors que votre couche de tuiles a été publiée sur votre portail, elle s'affiche lorsque vous développez le nœud Mes services hébergés dans la fenêtre Catalogue.

Votre couche de tuiles hébergée est répertoriée sous la forme de deux éléments indépendants sur la page Mon contenu du site Web du portail : des tuiles et une définition de service. Une définition de service est un fichier compressé contenant la carte, ses données et les informations concernant la façon dont les tuiles doivent être publiées. Une définition de service peut être transférée et publiée sur un ordinateur exécutant ArcGIS for Server.

Définir et publier une carte dans ArcGIS Pro

A partir d'une carte dans ArcGIS Pro, vous pouvez publier une couche de tuiles à héberger sur votre portail.

Notez également que les navigateurs Web ne peuvent pas afficher certains des symboles cartographiques les plus complexes que vous pouvez avoir utilisés à l'origine pour créer la carte. La plupart des types de symbole sont disponibles, mais dans certains cas, les symboles peuvent être rétrogradés lorsque vous les publiez. Reportez-vous à la rubrique Créer des services d'entités dans l'aide d'ArcGIS for Server pour savoir quels symboles sont pris en charge et modifier en conséquence la symbologie de votre carte avant de la publier.

  1. Démarrez ArcGIS Pro et ouvrez le projet contenant la carte à publier.
  2. Vérifiez que la connexion à votre portail est active et connectez-vous à votre organisation via un compte détenant des privilèges autorisant la création de contenu et la publication de couches de tuiles hébergées.
  3. Pour publier une couche de tuiles, procédez de l'une des façons suivantes :
    • Sélectionnez les couches dans la fenêtre Contenu. Cliquez avec le bouton droit sur le jeu de sélection puis cliquez sur Partager en tant que couche Web.
    • Pour publier toutes les couches de la carte, cliquez sur Couche Web dans le groupe Partager en tant que de l'onglet Partager et cliquez sur Publier la couche Web.

    Astuce:

    Si l'option de menu Partager en tant que couche Web n'est pas activée, la raison peut être l'une des suivantes :

    • Le compte avec lequel vous êtes connecté ne possède pas les privilèges de publication des couches d'entités hébergées.
    • Votre portail n'est pas configuré avec un serveur d'hébergement, ce qui est requis pour héberger des couches Web.
    • Vous essayez de publier une couche multipatch, ce qui n'est pas pris en charge.

  4. Tapez le nom de la couche de tuiles. Par défaut, la couche est enregistrée dans Mon contenu. Vous pouvez l'enregistrer dans un dossier au sein de Mon contenu en saisissant le nom du dossier ou en accédant à un dossier existant.
  5. Sélectionnez Copier toutes les données.
  6. Sélectionnez Tuile dans le champ Type de couche.

    Vous désélectionnez ainsi automatiquement toutes les autres valeurs de l'option Type de couche, car une seule valeur peut être sélectionnée lors de la copie de données.

  7. Fournissez un résumé et des balises pour la couche de tuiles.
  8. Spécifiez le mode de partage de la couche de tuiles. Toutes les couches que vous publiez sont automatiquement partagées sur votre espace de travail personnel dans votre organisation (Mon contenu). Votre contenu est inaccessible aux autres tant que vous ne le partagez pas à l'aide d'une des options suivantes :
    • Portal for ArcGIS : sélectionnez cette option pour partager la couche avec tous les utilisateurs authentifiés de l'organisation.
    • Tout le monde : sélectionnez cette option pour que la couche soit accessible à toute personne ayant accès à votre portail.
    • Groupes : vous pouvez partager la couche avec les membres des groupes auxquels vous appartenez.
  9. Cliquez sur Configuration, puis sur le bouton Configurer les propriétés de la couche Web pour spécifier les paramètres du cache.
    1. Choisissez une Structure de tuilage.
    2. Redimensionnez et déplacez la barre Niveau de détail pour indiquer l'échelle minimum et maximum de votre couche de tuiles.

      La taille estimée du cache obtenu change au fur et à mesure que vous modifiez l'échelle minimum et maximum.

    3. Choisissez l'option Générer le cache automatiquement au moment de la publication de la couche ou Générer le cache manuellement après la publication de la couche.

      Ouvrez la couche de tuiles sur le site Web du portail une fois la couche publiée pour créer manuellement le cache.

  10. Cliquez sur l'onglet Contenu pour confirmer l'intégration dans la couche de tuiles des couches de données que vous souhaitez.
  11. Cliquez sur Analyser pour rechercher d'éventuels erreurs ou problèmes.

    Si des problèmes sont identifiés, ils sont répertoriés dans l'onglet Messages. Cliquez avec le bouton droit sur chaque message pour obtenir plus d'informations, lire l'aide relative à l'erreur ou l'avertissement et accéder aux solutions suggérées. Vous devez résoudre les erreurs avant de procéder à la publication. Vous pouvez également résoudre les avertissements afin d'améliorer davantage les performances et l'apparence de votre couche de tuiles hébergée.

  12. Une fois les erreurs et éventuellement les avertissements résolus, cliquez sur Publier.
    Remarque :
    Vos données sont copiées sur le serveur à ce stade. La taille des données et la vitesse et la bande passante de votre réseau détermineront le temps nécessaire à la publication.

Une fois la publication terminée, vous pouvez cliquer sur Gérer la couche Web pour ouvrir le site Web du portail.

Créer et partager un paquetage de tuiles dans ArcMap et le publier

ArcMap vous permet de créer des tuiles pour un document ArcMap et de les stocker dans un fichier de paquetage de tuiles (.tpk) facilement transférable. Vous pouvez créer un paquetage de tuiles dans ArcMap, le partager sur votre portail et le publier en tant que couche de tuiles hébergée.

Deux workflows différents sont décrits ci-dessous. Le premier peut servir pour des paquetages de tuiles de taille restreinte à modérée et il préserve les éléments du document ArcMap, tels que la légende et le texte, lorsque les tuiles sont publiées depuis le paquetage de tuiles. Le deuxième workflow est recommandé pour la publication de paquetages de tuiles de taille importante, mais il ne gère les données que lorsque les tuiles sont publiées depuis le paquetage de tuiles.

Pour publier un paquetage de tuiles de taille restreinte à modérée, procédez comme suit :

  1. Ouvrez la carte dans ArcMap.
  2. Connectez-vous à votre portail avec un compte détenteur des privilèges requis pour créer du contenu et publier des couches de tuiles hébergées.
  3. Cliquez sur Personnaliser > Options ArcMap > Partage et vérifiez que l'option Activer les outils ArcGIS Runtime est sélectionnée.

    Cette opération active l'option de menu que vous utiliserez dans la prochaine étape.

  4. Dans ArcMap, cliquez sur Fichier > Partager comme > Paquetage de tuiles.
  5. Configurez tous les paramètres dans les sous-étapes suivantes. Vous pouvez choisir les autres paramètres comme il vous convient.
    1. Sous l'onglet Paquetage de tuiles, sélectionnez Télécharger le paquetage vers mon compte ArcGIS Portal.
    2. Sous l'onglet Format des tuiles, choisissez ArcGIS Online / Bing Maps / Google Maps comme structure de tuile.
    3. Sous l'onglet Description de l'élément, indiquez les éléments marqués comme obligatoires.
    4. Sous l'onglet Partage, vous pouvez partager le paquetage avec le public ou des groupes spécifiques.
  6. Cliquez sur Partager.

    Vous pouvez être invité à enregistrer votre carte avant de créer le paquetage de tuiles.

    La génération d'un paquetage de tuiles peut prendre du temps, en particulier si vous avez compris de grandes échelles.

  7. Une fois votre paquetage de tuiles généré, connectez-vous à votre portail via le compte utilisé pour créer le paquetage de tuiles dans ArcMap et cliquez sur Mon contenu.
  8. Cliquez sur le paquetage de tuiles pour afficher sa page Détails des éléments.
  9. Cliquez sur Publier.
  10. Saisissez un titre et des balises, puis cliquez sur Publier.

Les tuiles sont décompressées et une couche de tuiles hébergée est créée sur votre portail. Les tuiles de carte doivent apparaître dans la page Mon contenu.

Pour créer et partager des paquetages de tuiles volumineux, Esri recommande d'utiliser le jeu d'outils Cache de tuiles au lieu d'utiliser le workflow précédent. Ces outils peuvent tirer parti de plusieurs cœurs de traitement.

Exécutez ces outils dans l'ordre suivant :

  1. Exécutez Générer la structure de tuilage du cache de tuiles pour définir la grille de tuilage et le format d'image.
  2. Exécutez Gérer le cache de tuiles pour créer les tuiles.
  3. Exécutez Exporter le cache de tuiles pour créer le paquetage de tuiles.
  4. Exécutez Partager un paquetage (dans le jeu d'outils Paquetage) pour télécharger les tuiles sur votre portail.

Vous devez spécifier une couche d'entités avec la couche tuilée hébergée pour configurer les fenêtres contextuelles.

Créez un paquetage de tuiles dans ArcGIS Pro et chargez-le dans votre organisation.

Utilisez l'outil de géotraitement Créer un paquetage de tuiles de carte pour créer un paquetage de tuiles, l'ajouter à votre organisation et publier une couche de tuiles.

  1. Ouvrez le projet qui contient les données à empaqueter.
  2. Ouvrez et exécutez l'outil de géotraitement Créer un paquetage de tuiles de carte.
  3. Une fois votre paquetage de tuiles généré, connectez-vous à votre portail avec un compte doté des privilèges nécessaires pour créer du contenu et publier des couches de tuiles hébergées, puis cliquez sur Mon contenu.
  4. Ajouter le paquetage de tuiles A partir de mon ordinateur.
  5. Cochez la case Publier ce fichier en tant que couche de tuiles.
  6. Saisissez un titre et des balises, puis cliquez sur Ajouter un élément.

Les tuiles sont décompressées et une couche de tuiles hébergée est créée sur votre portail. Les tuiles de carte et le paquetage de tuiles doivent apparaître dans Mon contenu.

Créer et publier un paquetage de tuiles vectorielles

A compter de la version 1.2, ArcGIS Pro vous permet de créer des tuiles vectorielles pour une carte et de les stocker dans un fichier de paquetage de tuiles vectorielles (.vtpk) facilement transférable. Vous pouvez partager un paquetage de tuiles vectorielles d'ArcGIS Pro sur votre portail et publier le paquetage de tuiles vectorielles chargé en tant que couche de tuiles hébergée. Utilisez la couche de tuiles hébergée obtenue pour les fonds de carte dans la visionneuse de carte ou des applications personnalisées.

  1. Ouvrez le projet ArcGIS Pro contenant les données vectorielles de la carte à empaqueter dans des tuiles et publier.
  2. Connectez-vous à votre portail à partir d'ArcGIS Pro avec un compte possédant les privilèges nécessaires pour créer du contenu.
  3. Utilisez l'outil de géotraitement Créer un paquetage de tuiles vectorielles pour créer un paquetage de tuiles vectorielles.
  4. Deux possibilités s'offrent à vous pour ajouter un paquetage de tuiles vectorielles dans votre portail et publier une couche de tuiles.
  5. Si la taille de votre paquetage de tuiles vectorielles est supérieure à 2 Go, procédez comme suit pour ajouter et publier le paquetage :
    1. Exécutez l'outil de géotraitement Partager un paquetage pour ajouter le paquetage de tuiles vectorielles dans votre portail.
    2. Connectez-vous au site Web du portail et ouvrez Mon contenu. Vous devez disposer des privilèges requis pour publier des couches de tuiles hébergées.
    3. Cliquez sur le paquetage de tuiles pour afficher sa page Détails des éléments et cliquez sur Publier.
    4. Saisissez un titre et des balises, puis cliquez sur Publier.
  6. Si la taille de votre paquetage de tuiles vectorielles est inférieure à 2 Go, vous pouvez utiliser la méthode précédente pour ajouter le paquetage à votre portail et publier une couche de tuiles. Vous pouvez également vous connecter au portail et ajouter le paquetage de tuiles vectorielles.
    1. Connectez-vous au site Web du portail et cliquez sur Mon contenu. Vous devez disposer des privilèges requis pour créer du contenu et publier des couches de tuiles hébergées.
    2. Cliquez sur Ajouter un élément > A partir de mon ordinateur.
    3. Accédez à l'emplacement du paquetage de tuiles vectorielles (.vtpk).
    4. Laissez la case Publier ce fichier en tant que couche de tuiles cochée.
    5. Saisissez un titre et des balises, puis cliquez sur Ajouter un élément.

Les tuiles vectorielles sont décompressées et une couche de tuiles hébergée est créée. Vous pouvez voir la couche de tuiles dans Mon contenu et l'ajouter dans la visionneuse de carte.

Remarque :

Vous pouvez afficher des couches de tuiles vectorielles dans la visionneuse de carte si vous utilisez Internet Explorer 11, ainsi que dans la plupart des versions actuelles des navigateurs pour ordinateurs de bureau, tels que Chrome et Firefox. Microsoft Edge n'est pas pris en charge actuellement.

Notez également que les performances des couches de tuiles vectorielles sont supérieures sur des machines équipées de matériel plus récent.

Publier à partir d'une couche d'entités hébergée

Vous pouvez publier une couche de tuiles hébergée dans votre portail en utilisant une couche d'entités hébergées existantes si le serveur d'hébergement de votre portail utilise ArcGIS Data Store. Ce workflow est utile si aucun produit ArcGIS n'est installé localement. Vous pouvez, par exemple, publier un fichier de formes en tant que couche d'entités hébergée, et publier cette dernière en tant que couche de tuiles hébergée.

Remarque :

Les modifications apportées à la couche d'entités hébergée ne sont pas automatiquement répercutées sur la couche de tuiles hébergée. Vous devez republier la couche de tuiles hébergée à partir de la couche d'entités hébergée mise à jour.

Certaines restrictions en termes de style sont appliquées lors de la publication d'une couche de tuiles hébergée à partir d'une couche d'entités hébergée.

Suivez ces étapes pour publier une couche de tuiles hébergée à partir d'une couche d'entités hébergée :

  1. Connectez-vous avec un compte possédant les privilèges requis pour publier des couches de tuiles hébergées et cliquez sur Mon contenu.
  2. Pour publier, effectuez l'une des opérations suivantes :
    • Cliquez sur la couche d'entités hébergée que vous voulez publier et cliquez sur Publier.
    • Cliquez sur Créer > Couche de tuiles et sélectionnez une Couche d'entités pour publier sous forme de tuiles.
  3. Spécifiez un titre, des balises et un résumé, puis choisissez un dossier pour la couche de tuiles hébergée.
  4. Vous pouvez également changer la plage à laquelle la couche s'afficheront en choisissant des échelles dans les listes déroulantes Plage de visibilité.
  5. Cliquez sur OK.
  6. Cochez les cases qui se trouvent en regard des échelles auxquelles vous souhaitez générer les tuiles. Cliquez ensuite sur Créer des tuiles.
    Attention :

    En utilisant de grandes échelles dans votre plage d'échelles, vous risquez d'augmenter considérablement la consommation de ressources sur votre serveur. Ne créez pas de tuiles qui dépassent la précision de vos données.

  7. Lisez le message concernant le nombre de tuiles qui vont être créées. Si vous souhaitez tout de même continuer, cliquez sur Oui, créer les tuiles.

Publier à partir d'un fichier de définition de service

La publication de tuiles et la création d'un cache sollicitent d'importantes ressources du serveur. Si vous devez publier de nombreuses couches de tuiles, les auteurs des cartes peuvent créer des fichiers de définition de service (.sd) dans ArcMap, lesquels contiennent toutes les informations nécessaires pour publier une couche de tuiles sur le portail. Vous pouvez alors utiliser un script pour télécharger et publier les fichiers de définition de service sur votre portail après les heures d'ouverture des bureaux. Les couches de tuiles résultantes seront hébergées sur le serveur d'hébergement de votre portail.

Créer un fichier de définition de service

L'auteur de la carte doit suivre ces étapes pour créer un fichier de définition de service contenant les données et la symbologie requises pour une couche de tuiles qui sera hébergée sur le portail.

  1. Démarrez ArcMap et connectez-vous au portail.
  2. Créez et enregistrez une carte.

    Pour plus d'informations sur la création et la publication d'une carte, reportez-vous aux rubriques liées au service de carte dans l'aide ArcGIS.

  3. Créez maintenant un fichier de définition de service.
  4. Cliquez sur Fichier > Partager en tant que > Service.
  5. Sélectionnez Enregistrer un fichier de définition de service et cliquez sur Suivant.
  6. Cliquez sur Choisir une connexion et choisissez Mes services hébergés dans la liste déroulante.
  7. Saisissez un nom pour le fichier, puis cliquez sur Suivant.
  8. Précisez dans quel répertoire sur l'ordinateur client créer le fichier de définition de service, puis cliquez sur Continuer.

    Le Service Editor s'ouvre.

  9. Dans le volet gauche de l'Editeur de services, cliquez sur Mise en cache.
  10. Choisissez une Structure de tuilage.
  11. Choisissez les échelles minimum et maximum pour les tuiles puis exécutez l'option Calculer la taille du cache.
  12. Cliquez sur Créer un cache manuellement une fois le service publié.
  13. Vous pouvez également cliquer sur Paramètres avancés et définir des paramètres de cache supplémentaires pour le cache de tuiles.
  14. Dans la fenêtre gauche de l'éditeur de services, cliquez sur Description de l'élément et indiquez les informations correspondant à votre couche de tuiles :

    Vous devez indiquer au moins un résumé et des balises afin de créer le fichier de définition de service.

  15. Cliquez sur Analyser Analyser pour vous assurer qu'il ne contient aucune erreur.

    Vous devez résoudre toutes les erreurs avant d'organiser le fichier de définition de service. Vous pouvez également apporter les corrections nécessaires concernant les avertissements et messages renvoyés.

  16. Une fois les erreurs et éventuellement les avertissements et messages corrigés, cliquez sur Intermédiaire Etape.

Le fichier de définition de service est enregistré à l'emplacement que vous avez spécifié.

Charger la définition du service et publier

Une fois que l'auteur vous a envoyé le fichier de définition de service, vous pouvez le télécharger manuellement dans la section Mon contenu de votre portail et publier une couche de tuiles ou programmer un script de téléchargement et de publication du fichier.

Télécharger et publier manuellement

Connectez-vous au site Web du portail pour ajouter et publier le fichier de définition de service à votre portail.

  1. Connectez-vous à votre portail en tant que membre doté des privilèges nécessaires pour créer du contenu et publier des couches de tuiles hébergées, puis ouvrez Mon contenu.
  2. Cliquez sur Ajouter un élément.
  3. Sélectionnez l'option de chargement du fichier depuis votre ordinateur.
  4. Cliquez sur le bouton de navigation et choisissez le fichier de définition de service.
  5. Sélectionnez Publier ce fichier en tant que service.
  6. Saisissez des termes de balises en les séparant par des virgules.

    Les balises sont des mots ou de brèves expressions qui décrivent votre élément et facilitent sa localisation. Terres fédérales correspond à une balise, alors que Terres, fédérales correspond à deux balises.

  7. Cliquez sur Ajouter un élément pour ajouter le fichier de définition de service et publier la couche de tuiles.

    La couche de tuiles est publiée sur le serveur d'hébergement de votre portail, et la définition de service et les tuiles sont ajoutées à Mon contenu.

  8. Une fois la couche de tuiles publiée, vous aurez la possibilité de créer des tuiles. Cliquez sur ce lien pour créer les tuiles.

Par défaut, vous seul avez accès au fichier de définition de service et à la couche de tuiles hébergée. Vous pouvez partager le fichier et les tuiles avec d'autres personnes au sein de votre organisation ou avec des groupes spécifiques.

Exécuter un script de téléchargement et de publication

Pour télécharger et publier un fichier de définition de service après les heures d'ouverture des bureaux, automatisez l'exécution du script suivant sur votre machine ArcGIS Server :

  1. Copiez le script suivant dans un fichier texte et enregistrez le fichier avec l'extension .py.

    import os, sys, json, urllib, urllib2, httplib, urlparse, mimetools, mimetypes
    from cStringIO import StringIO
    
    # generates a new token from Portal
    def generate_token(baseurl, username, password):
        tokenUrl = urlparse.urljoin(baseurl, 'sharing/generateToken')
        postdata = { 'username': username, 'password': password,
                   'client': 'requestip', 'expiration': 60, 'f': 'json' }
        encoded_postdata = urllib.urlencode(postdata)
        opener = urllib2.build_opener()
        try: resp = opener.open(tokenUrl, data=encoded_postdata)
        except urllib2.HTTPError as e: raise Exception('Unable to connect to Portal, please check the url: {} {}'.format(e.code, e.reason))
        resp_json = json.loads(resp.read())
        if 'error' in resp_json: raise Exception('\n'.join(resp_json['error']['details']))
        return resp_json['token']
        sys.exit(1)
    
    # create proper multi-part POST request data
    def _encode_multipart_formdata(fields, files):
        boundary = mimetools.choose_boundary()
        buf = StringIO()
        for (key, value) in fields.iteritems():
            buf.write('--%s\r\n' % boundary)
            buf.write('Content-Disposition: form-data; name="%s"' % key)
            buf.write('\r\n\r\n%s\r\n' % str(value))
        for (key, filepath, filename) in files:
            buf.write('--%s\r\n' % boundary)
            buf.write('Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % (key, filename))
            buf.write('Content-Type: %s\r\n' % (mimetypes.guess_type(filename)[0] or 'application/octet-stream'))
            f = open(filepath, "rb")
            try:
                buf.write('\r\n' + f.read() + '\r\n')
            finally:
                f.close()
        buf.write('--' + boundary + '--\r\n\r\n')
        buf = buf.getvalue()
        return boundary, buf
    
    # send multi-part POST request
    def _postmultipart(host, selector, fields, files, ssl):
        boundary, body = _encode_multipart_formdata(fields, files)
        headers = { 'Content-Type': 'multipart/form-data; boundary={0}'.format(boundary) }
        if ssl: h = httplib.HTTPSConnection(host)
        else: h = httplib.HTTPConnection(host)
        
        h.request('POST', selector, body, headers)
        resp = h.getresponse()
    
        return resp.read()
    
    # first upload the SD file and create an item in Portal
    def addSDItem(baseurl, user, token, title, file, folder = ''):
        addUrl = 'sharing/rest/content/users/{}/{}addItem'
        if folder != '': addUrl = addUrl.format(user, folder + '/')
        else: addUrl = addUrl.format(user, '')
        
        url = urlparse.urljoin(baseurl, addUrl)
    
        files = [('file', file, os.path.split(file)[1])]
        fields = { 'token' : token, 'f' : 'json', 'type' : 'Service Definition', 'title' : title, 
                   'tags' : 'sampletag', 'name': title, 'typeKeywords' : 'Data, Service Definition, ArcGIS, sd' }
    
        ssl = url.startswith('https://')
        
        parsed_url = urlparse.urlparse(url)
        
        print('Uploading {} to {}..'.format(file, baseurl))
        resp = _postmultipart(parsed_url.netloc, str(parsed_url.path), fields, files, ssl)
        resp_json = json.loads(resp)
    
        if 'error' in resp_json:
          raise Exception('Unable to upload file {}: {}'.format(file, resp_json['error']['message']))
        
        return resp_json['id']
        
    # second publish the uploaded SD item as a new tiled service
    def publishTiles(baseurl, user, token, itemid):
        publishUrl = urlparse.urljoin(baseurl, 'sharing/rest/content/users/{}/publish'.format(user))
        query_dict= { 'f' : 'json', 'token': token, 'itemid': itemid, 'buildInitialCache' : True,
                      'publishParameters' : { 'name' : 'cities' }, 'fileType': 'serviceDefinition' }
                      
        query_string = urllib.urlencode(query_dict)
        print('Publishing tile service from item..')
        response = urllib.urlopen(publishUrl, query_string)
            
        resp_json = json.loads(response.read())
        
        if 'error' in resp_json: raise Exception('Unable to publish item: {}'.format(resp_json['error']['message']))
    
    # read input from command line when run as a standalone script
    if __name__ == '__main__':
        try: 
          url = sys.argv[1]
          user = sys.argv[2]
          password = sys.argv[3]
          f = sys.argv[4]
          title = sys.argv[5]
          if not url.endswith('/'): url += '/' # make sure the url ends with /
        except: # if too few parameters are passed on command line, show usage help
          print('Usage: ')
          print('       publishServiceItem.py [portalUrl] [userName] [password] [sdFilePath] [titleOfServiceItem]')
          print('')
          print('portalUrl           The secure url to the portal, e.g. https://portalmachine.example.com/arcgis/')
          print('userName            The username of a user to publish the service.')
          print('                    This user must have the required publishing privileges.')
          print('password            The password of the user')
          print('sdFilePath          Path to the .sd file containing the service definition')
          print('                    E.g. c:\\temp\cachedService.sd')
          print('titleOfServiceItem  The title to assign to the published item in the portal.')
          sys.exit(1)  
    
        token = generate_token(url, user, password)
    
        id = addSDItem(url, user, token, title, f)
        publishTiles(url, user, token, id)
        print('Publishing complete. Tile generation has been started and may take a while to finish.')

  2. Créez un fichier de commandes ou un script d'environnement d'exécution que vous programmerez pour exécuter le script Python.
  3. Dans le fichier, appelez le script Python et indiquez les options propres à votre site.

    Par exemple, pour exécuter le script publishServiceItem.py, saisissez l'URL de votre portail, le nom d'utilisateur avec lequel se connecter, le mot de passe de l'utilisateur, le chemin d'accès au fichier de définition de service et le titre du service à créer. Dans cet exemple, l'URL du portail est https://portal.domain.com/arcgis/, le nom d'utilisateur et le mot de passe sont pub1 et pub.1, le chemin d'accès au fichier de définition de service est C:\maps\SDs\mymap.sd et le nom du service est studytiles.

    publishServiceItem.py https://portal.domain.com/arcgis/ pub1 pub.1 C:\maps\SDs\mymap.sd studytiles

    Astuce:

    Vous pouvez également utiliser le script simplifié suivant pour charger un fichier définition de service dans votre portail, publier une couche de tuiles et générer un cache. Vous devez toutefois installer des paquetages Python supplémentaires (PortalPy et des requêtes Python) pour exécuter ce script. PortalPy s'installe avec Portal for ArcGIS. Reportez-vous à la rubrique Rédaction de scripts avec PortalPy pour l'exécution de tâches administratives dans l'aide de Portal for ArcGIS pour en savoir plus sur l'installation et l'utilisation de ce module.

    import portalpy, requests, urlparse, sys, os
    
    # first upload the SD file and create an item in Portal
    def addSDItem(baseurl, user, token, title, file, folder = ''):
        addUrl = 'sharing/rest/content/users/{}/{}addItem'
        if folder != '': addUrl = addUrl.format(user, folder + '/')
        else: addUrl = addUrl.format(user, '')
        
        url = urlparse.urljoin(baseurl, addUrl)
    
        files = { 'file' : (os.path.split(file)[1], open(file, 'rb')) }
        fields = { 'token' : token, 'f' : 'json', 'type' : 'Service Definition', 'title' : title, 
                   'tags' : 'sampletag', 'name': title, 'typeKeywords' : 'Data, Service Definition, ArcGIS, sd' }
    
        print('Uploading {} to {}..'.format(file, baseurl))
        
        # send POST with upload request
        # verify=False turns off SSL cert validation, turn on for production environments with CA-signed certs
        resp = requests.post(url, data=fields, files=files, verify=False)
        resp_json = resp.json()
    
        if 'error' in resp_json:
          raise Exception('Unable to upload file {}: {}'.format(file, resp_json['error']['message']))
        
        return resp_json['id']
    
    # second publish the uploaded SD item as a new tiled service
    def publishTiles(baseurl, user, token, itemid):
        publishUrl = urlparse.urljoin(baseurl, 'sharing/rest/content/users/{}/publish'.format(user))
        query_dict= { 'f' : 'json', 'token': token, 'itemid': itemid, 'buildInitialCache' : True,
                      'publishParameters' : "{ 'name' : 'cities' }", 'fileType': 'serviceDefinition' }
        
        print('Publishing tile service from item..')
        
        # send POST with publish request
        # verify=False turns off SSL cert validation, turn on for production environments with CA-signed certs
        response = requests.post(publishUrl, data=query_dict, verify=False) 
            
        resp_json = response.json()
        
        if 'error' in resp_json: raise Exception('Unable to publish item: {}'.format(resp_json['error']['message']))
    
    # read input from command line when run as a standalone script
    if __name__ == '__main__':
        try: 
          url = sys.argv[1]
          user = sys.argv[2]
          password = sys.argv[3]
          f = sys.argv[4]
          title = sys.argv[5]
          if not url.endswith('/'): url += '/' # make sure the url ends with /
        except: # if too few parameters are passed on command line, show usage help
          print('Usage: ')
          print('       publishServiceItem.py [portalUrl] [userName] [password] [sdFilePath] [titleOfServiceItem]')
          print('')
          print('portalUrl           The secure url to the portal, e.g. https://portalmachine.example.com/arcgis/')
          print('userName            The username of a user to publish the service.')
          print('                    This user must have the required publishing privileges.')
          print('password            The password of the user')
          print('sdFilePath          Path to the .sd file containing the service definition')
          print('                    E.g. c:\\temp\cachedService.sd')
          print('titleOfServiceItem  The title to assign to the published item in the portal.')
          sys.exit(1) 
    
        portal = portalpy.Portal(url, user, password)
        token = portal.generate_token(user, password)
    
        id = addSDItem(url, user, token, title, f)
        publishTiles(url, user, token, id)
        print('Publishing complete. Tile generation has been started and may take a while to finish.')

  4. Programmez l'exécution de votre script lorsque l'utilisation du portail est minimale.

    Reportez-vous à la rubrique Programmation d'un script Python pour qu'il s'exécute à des moments définis dans l'aide de géotraitement ArcGIS pour en savoir plus sur la programmation d'un script.