Skip to main content

Selecting multiple layers with a buffer

Comments

13 comments

  • Permanently deleted user

    I still need help with this!  

     

    I got it to finally select from all the layers using a layer_loop (int32 variable I created) inside a do-while, here's how: 

    In the query task url I put: "http://myserver/arcgis/rest/services/mapservice/MapServer/"+Layer_Loop.ToString()+"/"

    in the select features under layer id I put: Layer_Loop.ToString() and named my collection here

    and then assign Layer_Loop to Layer_Loop+1 

    condition of: Layer_Loop < 8

     

    This selects the features that fall under my graphic from all 8 layers in this map service!  It works great EXCEPT that I can't seem to create a buffer off anything but the graphic I drew???  I want it to buffer all my selected features.  This is for cultural resources data so buffering sites is very important.

     

    I'm using Essentials 4.1

    0
  • Permanently deleted user

    That didn't solve the problem.

     

    Luckily the folks that want this don't need to go this far (whew!) and all they want is to select features from the buffered graphic not buffer the selected features.  I got that already so I'm saved!!

    0
  • Permanently deleted user

    Going back to your original question, I took a different approach to selecting features from multiple layers in a map service in a workflow. I just ran multiple consecutive query/select tasks using distinct featuresets for each map layer in the service. All the featuresets (same geometry type) fed a common, named collection. Seems to work OK.

    0
  • Permanently deleted user

    I had thought about going through the giant flow of 8 different feature sets, but ended up with the Do While I mentioned in my second post.  The only thing I couldn't figure out was bufferring all 8 layers.  Luckily I don't need to buffer my selection anymore, so I can stop there.  I could have had 8 different feature sets and ran 8 different buffers, but that would have gotten pretty intense!

    0
  • Permanently deleted user

    I have a workflow that has the user select a polygon (parcel) then it buffers that polygon and uses that as the new selection polygon.  There are 7 different queries for each feature class using the same "cookie cutter".

    0
  • Permanently deleted user
    I'm doing something similar.  I'm attempting to query around 20 layers for a polygon that the user selects.  I took the time to set up multiple Query Tasks and SelectFeature for each layer.  My problem is how long it takes for it  to return the values.  I have a flex application that returns all the layers immediately but my Geocortex workflow is really dragging.  Has anyone else come across this sort of problem?  Thanks.

     

     
    0
  • Amanda Frech
    Hi Jeff,

     

    I believe your organization's already been in contact for this one, but I'll post here as well for future readers' sakes too.  You can speed up a process like this by scoping your variables to limit the data that's sent back and forth while the workflow is running, and by running your queries in parallel instead of in sequence.  We've unfortunately noticed that when you run a workflow that creates and modifies multi-layer selections many times, it may run slower on the 10th time than the 1st.  If you're testing a workflow like this, you'll want to refresh the viewer occasionally for cleaner results.  

     

    Ultimately, if it is possible to enable the necessary layers for identify and perform an identify operation instead, that may be faster than replicating the process in a workflow.

     

    -Amanda
    0
  • Denise Beckham
    Hello,

     

    I am working on a workflow that will allow users to choose up to three different resources to search for within 5 minutes of the address they search.  I originally tried using query tasks and select features activities in parallel if statements, but when more than one option is checked, it only shows the results for one layer.  After searching other forum posts, I made sure all of the different select features activities have the same name for the collection name. However, that did not fix the problem.  It still only shows the results from one layer.  I then tried using identify with the graphic I created from a 5-minute service area.  However, this did not work because it selected other layers that I want to be identifiable but that I do not want identfied in this workflow.  Most notably, it selected the graphic. 

     

    Does anybody have any ideas on why I can only get the results from one layer when I use the parallel if statements with queries, or is there a way to choose which layers I want identified in the workflow?

     

    Thanks,

     

    Denise
    0
  • Denise Beckham
    Correction: The Identify operation does not select the service area graphic, it selects the point markup that is placed on the map based on the address the user enters.
    0
  • Nico Burgerhart
    Try to set the Combine Mode of the Select Features activity to Geocortex.Workflow.Activities.CombineMode.Union
    0
  • Denise Beckham
    Nico,

     

    I set the Combine Mode to Unnion for all three Select Features activity and gave them all the same collection name.  I also used unique variables for the resulting feature sets of each query task.  However, it is still not working.  It doesn't even seem to be consistent in which layer it chooses to display. Is there anything else I might be doing wrong?

     

    Thanks,

     

    Denise
    0
  • Nico Burgerhart
    What if the activities are not run in parallel?
    0
  • Denise Beckham
    Nico,

     

    That did the trick!  Thank you! I wouldn't have expected that putting them in parallel would cause only one of the if statements to run, but the results finally look how I want them to after I took them out.  Luckily I only have three layers that the users can choose from, so at least it doesn't make the workflow too unmanagable when they're in sequence. 

     

    Thanks again!

     

    Denise
    0

Please sign in to leave a comment.