Publier des tuiles
Dans cette rubrique
- Définir et publier une carte dans ArcMap
- Définir et publier une carte dans ArcGIS Pro
- Publier une couche d'entités hébergée
- Publier un fichier de définition de service
Les tuiles publiées sur et hébergées dans 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 des tuiles à partir d'un fichier de définition de service ou d'un document ArcMap à héberger sur votre portail.
- Définissez votre carte dans ArcMap et autorisez votre portail à créer les tuiles.
- Définissez votre carte dans ArcGIS Pro et autorisez votre portail à créer les tuiles.
- Publiez des tuiles à partir d'une couche d'entités hébergée existante, ce qui vous permet d'obtenir à la fois une couche de tuiles hébergée et une couche d'entités hébergée.
- Définissez un fichier de définition de service dans ArcGIS for Desktop, téléchargez-le et autorisez votre portail à créer les tuiles.
Vous pouvez choisir de créer un cache sur vos tuiles automatiquement au moment de la publication ou de 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
Dans ArcMap, vous pouvez publier des tuiles pour les héberger sur votre portail.
Vérifiez qu'ArcGIS for Desktop est connecté à votre portail avant de démarrer ArcMap.
- Démarrez ArcMap et ouvrez la carte à publier.
- Connectez-vous à votre portail avec un compte d'organisation détenteur des privilèges requis pour créer du contenu et publier des couches de tuiles hébergées.
- Cliquez Fichier > Se connecter.
- Saisissez votre nom d'utilisateur et votre mot de passe pour votre portail, puis cliquez sur Se connecter.
- Cliquez Fichier > Partager en tant que > Service.
- 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.
- 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.
- 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 si vous travaillez avec des 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.
- Dans le volet gauche de l'Editeur 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.
- 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 obtenir plus de précisions, en sachant que certains paramètres avancés de mise en cache sont uniquement disponibles pour une publication directe dans ArcGIS for Server.
- Dans le volet gauche de l'Editeur de services, cliquez sur Description d'élément et entrez 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.
- 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.
- Dans l'Editeur de services, cliquez sur Analyse. .
Cette fonction examine la carte pour voir si elle peut être publiée. Vous devez corriger les Erreurs 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.
- Vous pouvez également cliquer sur Aperçu dans l'Editeur de services. Cela peut vous donner une idée de l'apparence de votre couche de tuiles sur le Web.
- Une fois les erreurs et éventuellement les avertissements et messages résolus, cliquez sur Publier .
Remarque :
Vos données sont copiées sur le serveur à ce stade.La taille des données, ainsi que la vitesse et la bande passante de votre connexion réseau, détermineront le temps nécessaire à la publication. Vous devez également anticiper le délai de génération de vos tuiles.
Dès lors que vos tuiles ont été publiées sur votre portail, elles s'affichent 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
Sur une carte dans ArcGIS Pro, vous pouvez publier des tuiles pour les héberger sur votre portail.
Avant de poursuivre, vérifiez que la connexion à votre portail est active.
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.
- Démarrez ArcGIS Pro et ouvrez le projet contenant la carte à publier.
- Connectez-vous à votre organisation à partir d'ArcGIS Pro en utilisant un compte détenteur des privilèges requis pour créer du contenu et publier des couches d'entités hébergées.
- Cliquez sur Couche Web dans le groupe Partager en tant que de l'onglet Partager.
- Saisissez le nom de la couche d'entités. 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.
- Sélectionnez Tuiles dans le champ Type de couche.
- Fournissez un résumé et des balises pour la couche de tuiles.
- 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 :
- Mon organisation : 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 rendre la couche accessible à quiconque a accès à votre portail.
- Groupes : vous pouvez partager la couche avec les membres des groupes auxquels vous appartenez.
- Cliquez sur l'onglet Configuration pour spécifier les paramètres du cache.
- 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.
- Choisissez de générer le cache au moment de la publication de la couche ou de 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 le cache manuellement.
- Redimensionnez et déplacez la barre Niveau de détail pour indiquer l'échelle minimum et maximum de votre couche de tuiles.
- Cliquez sur l'onglet Contenu pour confirmer l'intégration dans la couche de tuiles des couches de données que vous souhaitez.
- Cliquez sur Analyse pour vérifier les erreurs ou problèmes éventuels.
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.
- 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.
Publier une couche d'entités hébergée
Vous pouvez publier une couche de tuiles hébergée sur votre portail à l'aide d'une couche d'entités hébergée. 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, puis 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 :
- 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.
- 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 Créer > Couche de tuiles et choisissez Couche d'entités pour la publier sous forme de tuiles.
- Spécifiez un titre, des balises et un résumé, puis choisissez un dossier pour la couche de tuiles hébergée.
- Vous pouvez également changer la plage à laquelle la couche s'afficheront en choisissant des échelles dans les listes déroulantes Plage de visibilité.
- Cliquer sur OK.
- 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.
- 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 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 les étapes suivantes pour créer un fichier de définition de service contenant les données et la symbologie nécessaires à une couche de tuiles devant être hébergée sur le portail.
- Démarrez ArcMap et connectez-vous au portail.
- 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.
- Cliquez Fichier > Partager en tant que > Service.
- Sélectionnez Enregistrer un fichier de définition de service et cliquez sur Suivant.
- Cliquez sur Choisir une connexion et choisissez Mes services hébergés dans la liste déroulante.
- Saisissez un nom pour le fichier, puis cliquez sur Suivant.
- 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.
- Dans le volet gauche de l'Editeur de services, cliquez sur Mise en cache.
- Choisissez une Structure de tuilage.
- Choisissez les échelles minimum et maximum pour les tuiles puis exécutez l'option Calculer la taille du cache.
- Cliquez sur Créer un cache manuellement une fois le service publié.
- Vous pouvez également cliquer sur Paramètres avancés et définir des paramètres de cache supplémentaires pour le cache de tuiles.
- Dans le volet gauche de l'Editeur de services, cliquez sur Description de l'élément et entrez les informations correspondant à votre couche de tuiles :
Vous devez saisir au moins un résumé et des balises afin de créer le fichier de définition de service.
- Cliquez sur Analyse 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.
- Une fois les erreurs et éventuellement les avertissements et messages corrigés, cliquez sur Intermédiaire .
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.
- 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.
- Cliquez sur Ajouter un élément.
- Sélectionnez l'option de chargement du fichier depuis votre ordinateur.
- Cliquez sur le bouton de navigation et choisissez le fichier de définition de service.
- Sélectionnez Publier ce fichier en tant que service.
- 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.
- 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.
- 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 :
- 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.')
- Créez un fichier de commandes ou un script d'environnement d'exécution que vous programmerez pour exécuter le script Python.
- 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 est installé 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.')
- 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.
Vous avez un commentaire à formuler concernant cette rubrique ?