Suite

Paramètre de sortie du géotraitement Python en tant que couche d'entités sur l'API javascript arcgis ?

Paramètre de sortie du géotraitement Python en tant que couche d'entités sur l'API javascript arcgis ?


Comment puis-je obtenir le résultat de cette requête dans Arcgis Javascript Api ?? ou comment je devrais publier ses services pour travailler et m'envoyer le résultat ?? j'exécute cette requête et cela fonctionne dans ArcMap mais lorsque je la publie, je reçois cette erreur

'"Valeur de retour non valide : in_memory/Buffers2"'

sous forme de messages sur Arcgis Javascript Api…

import arcpy arcpy.env.workspace = "c:/ArcpyBook/data/TravisCounty" streams = "Streams.shp" distance = "2640 Feet" bahman="in_memory/Buffers2" arcpy.Buffer_analysis(streams,bahman,distance,'FULL ','ROUND','ALL') arcpy.SetParameterAsText(0,bahman)

grâce à vos réponses, je fais déjà cette requête de test et cela fonctionne bien pour moi

import arcpy Input=arcpy.GetParameterAsText(0) Input=Input+':: http://gis.stackexchange.com' arcpy.AddMessage('Input is :'+Input) arcpy.SetParameterAsText(1,Input)

Ensuite, j'ajoute un script dans ArcMap, puis j'exécute ce script et publie le résultat et appelle les services dans Arcgis javascript api

en effet, je veux faire une analyse de réseau géométrique dans mon application qui affiche les résultats avec Arcgis Javascript Api

dans les didacticiels esri, je trouve que le faire avec ModdelBuilder, puis exécutez-le, puis publiez le résultat. dans ce didacticiel, définissez le paramètre defalt sur

en_mémoire{68225AF2-773D-4B79-BBD3-EE72DE8999E3}

je sais que 'in_memory' fait référence à l'espace de travail inmemory mais ne comprends pas cette valeur '{68225AF2-773D-4B79-BBD3-EE72DE8999E3}'

y a-t-il un moyen d'accomplir ces étapes uniquement avec python ?? Je veux définir les paramètres d'entrée et de sortie dans le script python. Je ne veux pas définir ces paramètres dans ModelBuilder…


Les deux options que je connais sont de prendre ces données et de les publier en tant que nouveau service de carte/entité, ou la meilleure option (à moins que vous ne vouliez créer un ensemble de services de carte/entité), est de renvoyer un FeatureSet et de laisser votre JS le gérer en conséquence.

Lorsque vous exécutez votre service de géotraitement, il renvoie des informations à votre serveur. Le serveur traitera les informations en fonction de l'outil/script fourni dans votre service GP. Une fois cela fait, il communiquera le résultat au client Web. Fondamentalement, lorsque vous appelez votre service GP, vous passez une fonction de rappel qui gérera le résultat de retour.

Ce site d'information a un exemple. Un bref extrait du code ressemble à :

gp.submitJob(params, completeCallback, statusCallback);

Ce qui se passe ci-dessus est :paramètressont les paramètres que vous transmettez à votre service GP.Rappel completest la fonction qui est appelée quand n lejobStatusest égal àSTATUS_SUCCEEDED.statutRappelest une fonction de mise à jour utilisée pour vous renvoyer les messages du serveur. Quand c'est fait, vous récupérez unJeu de fonctionnalitésà gérer comme vous le souhaitez. Dans l'exemple du site, ils dessinent des graphiques sur la carte.

function displayResult(result, messages) { var simpleLineSymbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255,255,0]), 1); var features = result.value.features; pour (var f=0, fl=features.length; f