Solved! Go to Solution.
That doesn't make sense to me. If I want a buffer of N kms around X features, I want the results to also contain features outside of those X features but within the buffer distance. In other words, the results should have X or more features.
//Create a new Geoprocessor object Geoprocessor gp = new Geoprocessor(_localGPService.UrlGeoprocessingService + "/Buffer"); //Create a new List of type GPParameter to hold the parameters for the service List<GPParameter> parameters = new List<GPParameter>(); //Create a new GP FeaturerecordSetLayer with parameter name GPFeatureRecordSetLayer gpFeatureRecordSetLayer = new GPFeatureRecordSetLayer("Input_Locations"); //Add the GpFeatureRecordSetLayer to the parameter list parameters.Add(gpFeatureRecordSetLayer);
The architecture of the Runtime SDK is different to ArcEngine and Desktop, so you have to adjust your workflows (and GP models/scripts!) to suit the service-oriented architecture. (Also, be aware that not all GP tools are supported in the Runtime local geoprocessor and there are some limitations in terms of the size of the datasets you send to the GP service - you can adjust the output, but the input seems to be fixed at 1000 records from the work I have done.)
Having said that, ArcGIS 10.1 uses some kind of Runtime local service to perform background geoprocessing on "standard" GP tools (i.e. no GPK is required), so I think there is merit to your initial question.
Now this is the part I dont know enough about in Runtime: if you have the same notion of layers in Runtime as you do in ArcMap, I'd say its conceivable that those layers could be passed to the "gp service" (ie the geoprocessing task runtime has spun up).
So if you know the answer to the "layer" question, and its "yes", then I'd suspect you could pass that layer into the GP parameter within the applications code and it should act upon it.
Your note about the runtime local service for background in desktop: True again. Note though: Well, yes they share common components and the same name - they do not equal one another. Background server in Desktop has zero interaction with a Runtime application. Basically I dont want you to confuse that just because you can do something in Desktop+Background you could potentially do the same in Runtime.
Hi Kevin,
I wouldn't say layers in Desktop and Runtime are the same from my experience, but I've set up a few local GP services that *only* consume data from the application (both feature service and graphics layers) and I think you are correct about FeatureSets being the key. It took me a while to figure this out when I started using the Runtime SDK, and even though the documentation is more complete now than during the beta and pre-release, it could be made more obvious for folk coming from Desktop/ArcEngine or those with complicated projects that go beyond the GP samples.
Yes, I figured as much when I couldn't see a REST endpoint or anything in Fiddler, but it would be quite cool if this was opened up in the future as I have been frustrated with some GP tools not being available with the Runtime SDK. ArcPy gets better with every release, so some missing tools can be replaced with scripts, but it would be great if ArcInfo-level tools were supported in the Runtime. (But I guess this would contradict the intended purpose of the Runtime and you would be better to use something else from the ESRI stack.)
Let me see if I understand what you're saying.
I can use ArcMap to create a GPK with only the set of tools that I need, and I can have the geometry passed through a GP parameter when executing the tool.
Is this accurate?
You'll have to run the tool to get a result to turn into a GPK...
Bad request: POST GPServer/BufferModel/execute The 'execute' operation is not supported.