Drill Identify Query Task Workflow
I would like to create a workflow where the user searches for a parcel by entering the parcel number. The query returns the not only the attributes of the parcels, but also the corresponding attributes of two or three other layers as a report. In our very old IMF site, we handled this through a drill identify query.
Thanks
-
This sounds like something I'm trying to do. I want to identify 7 specific layers whether they're off or on when a user clicks a parcel. Did you ever get something like this working?
0 -
hi, Rebeca and Jason,
Below is the pesudo-code implementation of the workflow.
Condersing that Rebeca wants to get the Parcel's geometry from the matched feature field value of the parcel, with the one a user selected on the Form like PID or so, while Jason wants for a user to choose the map location where you can find the Parcel's geometry, the workflows are little different the way to choose the parcel's geometry: (1) Rebeca uses the Display Form (2) Jason uses 'Capture Geometry' with Point type - Query Against Parcel with the map point.
Having said that, now both of you have a Parcel feature's geometry, with which you will run the Spatial Query usign a set of Query Tasks (possibly using Paralle - For-Each in which execute QueryTask) with the data (List<layerUrl in String>).
I recommends to configure <Property/> in the interesting Layers against which you want query in SIte.xml, and using "GetLayerInfoByProperty' Workflow activity, will give you a set of layer information including layerUrl(s), with which you can construct the input data for the spatial query with the parcel's geometry.
Then, using SelectFeature inside another For-Each loop, with same CollecitonName, will do the drill-down Identify against the configured layers with parcel's geometry.
Munhwan
0 -
Another option to consider is taking the geometry and running a sql .STIntersects query (assuming you're using Sql Server) against the layers in question.
We use it quite a bit to identify assets within risk areas and dump the data into a spreadsheet, with separate tabs for each layer.
It's a handy way to append information from other layers to the result, like access date, administrative area names etc...
0 -
Hey Miles,
Do you have an example workflow of taking the geocortex geometry and using STIntersects you could share.
0 -
If you're just trying to get info from other layers when you identify a parcel, then you don't need a workflow. You can accomplish the same thing with data links.
STIntersects is a SQL method to test if two geometries intersect. You use it in your where clause the same way you use other fields. Here's an example of using it in a data link.
SELECT <your fields>
FROM layer1, layer2
WHERE layer1.Shape.STIntersects(layer2.Shape) = 1
AND layer1.uniqueField = @uniqueField
There are a lot of different geometry methods available in SQL Server. I use several of them throughout my different data links depending on the spatial relationship I need. https://msdn.microsoft.com/en-us/library/bb933960.aspx
0 -
Thanks John, Very handy to know.
I want to generate a report with the values so I need to run through a workflow. I will have to test with the workflow sql command.
0 -
You could also set up the data link on your layer and use a subreport in your report to pull values from that data link. It would probably run faster that way.
0 -
I ended up using a very simple work around that is working very well for us. I created an "identify" map service with all the layers I wanted to identify (in my case 6 of them). All the symbology was clear/transparent and all the layers are always on (but obviously not visible). The same layers exist in other map services but are symbolised properly. Identify operations are only allowed on the "identify" map service. We are planning to release it this week. Here's the link if anyone wants to see how this looks: http://maps.rdos.bc.ca/Html5Viewer_Defaults/?viewer=public_html5
0 -
Looks like that works too. There's always a handful of ways to do it, isn't there? :)
0
Please sign in to leave a comment.
Comments
9 comments