It's a little hard to know without seeing the full schema of your layers. Are they truly related, and part of the same service, or do they simply share a field? I've got a very similar solution in one of my webmaps I'd be happy to share with you, but it depends a lot on how the layers are set up. The Not-Actually-Related Layer Solution Given two layers, parcels and parcel sales, I can use the following Arcade expression on the parcels layer to bring in an attribute from the sales table. // Assign feature id field to variable
var id = $feature.pin
// Get other layer
var otherLayer = FeatureSetByName($map,"Parcel_Sales")
// Filter other layer by matching id
var otherFeatures = Filter(otherLayer, 'property_key = @ID')
// Sort returned features
var sortedFeatures = OrderBy(otherFeatures, 'sale_date DESC')
// Grab the first feature in the FeatureSet
var f = First(sortedFeatures)
// Return sale amount of latest sale
return f.sale_amount Here's how it looks in action: Of course, there's no reason some of those functions couldn't be combined into one, but I kept them all separate for clarity.
... View more
Before I came to work at an ESRI workplace, I was an avid QGIS user. Still am, really, but as ArcGIS Pro has developed, I find myself needing to use Q less and less to hack together an as-yet-unimplemented feature in Pro. (Major props on the eyedropper!) There is, alas, still one feature that I desperately want: multiple-page layouts. In the course of my work, there are a number of times when it is helpful to have spatial and non-spatial components on separate pages, and the sheer amount of information in my layout cannot realistically be squeezed into a single page. Or at least, not that the average person could print out. I'm all for digital maps, but I know we have other folks in our county who want it on paper, and I'd like to conveniently oblige them. The biggest of these items are our Change Records we generate when changes are made to the cadastre. Here's one for reference. Combining multi-page layouts with a Map Series would absolutely make my day. What are my alternatives? Make each page a separate layout Use some sort of mail merge procedure to generate the non-spatial pages Make my layouts potentially tabloid-sized Use Python Use QGIS Options 1 and 2 create separate files, which then have to be merged together, adding more steps and intermediate file storage to what is currently a batch process. Option 3 we tried, but the increased loading time and unprintable nature of the page was not desirable for our users. Option 4 is a maybe, but there's no way the spatial component will look half as nice as Pro, especially when it comes to labelling. Option 5 is what I'm currently doing, but it comes with a host of its own limitations, and means that I have to work in two programs during my "weekly update" process, which is sub-optimal. Final note: I've tried making a reeeeeeally tall layout in Pro and hoping that in the "Print to PDF" process it would cut them, but no. It just generates a really tall PDF.
... View more
Welcome! Python is a great place to start digging in. Things you may want to look into, if you haven't already: Anaconda, for managing Python and R environments Jupyter Notebooks Setting up with GitHub / VS Code to manage your notebooks and share your work The GeoPandas and Pandas Python libraries Bokeh / Matplotlib for making snazzy visualizations of your work Great GIS Python tutorials are easily found both on ESRI pages and elsewhere. Good luck!
... View more
I'd love to use a Link Chart to visualize genealogy for parcel features in our Parcel Fabric, as was recently shown in a webinar (What's New Pro 2.7 for Parcel Fabric Meetup Slides ). However, when I go to create a link chart of my parcels, I have no ability to filter the entities being shown. I have even tried applying a definition query before creating the chart, but it does not work. With roughly 60k parcels in our county, trying to create a link chart for all of them usually crashes my computer, or at least hangs the UI for a long time. I'd like to keep the link chart pointed at the live data, and not create an export or separate query layer each time I want to make a chart. Is it possible to limit the entities which a link chart is created from?
... View more
We're actually already working on regressing to the parent parcels, which we have been referring to as "backdating the fabric". While there isn't a built-in workflow for this sort of thing, we've got a pretty reliable method worked out. The important thing to keep in mind is which of the editing tools will automatically retire a parcel with a record active. Backdating a Split Create the record. Select the child parcels. Click Assign Selection to Record in the Manage Records pane (or from the little active record chip) Toggle the record mode so that no record is active. Use Merge to merge the child parcels into the parent shape. Be sure to use the New Feature mode Check the box to Keep original features Set the name and various attributes as needed Toggle the record mode so that the record is active again. Select the newly-merged parent parcel. Click Set Historic, or copy and paste the record globalid into the Retired By field. You now have a historic parent parcel and its children correctly assigned to the same record! By performing the merge outside of an active record, we avoid retiring the child parcels by mistake. Backdating a Combination A bit more convoluted, but it still works. Create the record. Select the child parcel. Click Assign Selection to Record in the Manage Records pane (or from the little active record chip) Use Duplicate Parcels to create an identical polygon in the same record. Toggle the record mode so that no record is active. Use Split to cut the duplicated parcel shape in to the parent parcel shapes. Toggle the record mode so that the record is active again. Select all the newly-split parent parcels. In the attributes, click the + sign in Created By field to assign a random GUID, or simply leave null if you don't mind the validation error. We do this because the initial duplicate parcel has the same record GUID for its retired and created fields, which is incorrect, and one of your split remainders will likely have inherited this value. The other parcels will simply have a null for their created field. Click Set Historic, or copy and paste the record globalid into the Retired By field. You now have historic parent parcels and their child correctly assigned to the same record! By performing the split(s) outside of a record, we avoid creating a retired parent for each split performed. There are other ways to do it as well. You could simply perform the split / combination like it was a current transaction, but then shuffle around this GUIDs in the created and retired by fields, but this seems more prone to error and accidentally retiring something. Also, boundaries get more complex. We have opted to focus solely on the polygon features, as the lines have a Parent Line ID field that becomes rather cumbersome to keep track of. Once you get into a rhythm, it becomes quite quick. You can even build these steps into a Task item to semi-automate the record toggling and such. We were able to make quick work of several years' worth of historic parcels.
... View more
The answer to this can be found in the widget's manifest. More specifically, in the inPanel property. In the standard WAB interface, you won't see this, but refer to the WAB Dev docs for details. What it comes down to is that the time slider widget's inPanel property is set to "false". This means that the time slider widget cannot be contained within a panel-specific widget, such as a dashboard panel or a fixed sidebar, as in the Jewelry Box theme. Other examples of this property would be the Summary, Incident Awareness, and Swipe widgets. These widgets don't exist inside of a "box" framework that can be assigned to a panel, but rather have a very specific function / position in the app. Notice the way the Time Slider appears in a map: As with the other examples, this element can't just be reassigned to a panel. You can have a widget button (under the search bar, for example) that launches this widget, regardless of the theme chosen, but that's it.
... View more
Thank you for the reply! I suppose you did actually answer the question I'd posed originally, and that's on me for not being more careful with my phrasing. I've edited the post to clarify what I actually meant by my question.
... View more