QuerySimple & HelperSimple: High-Performance Search and Spatial Query for ExB

646
4
03-19-2026 10:15 AM
adamsimple
Occasional Contributor

My team is in the middle of transitioning King County's main public-facing GIS application, iMap, to ArcGIS Experience Builder. After exploring everything Esri offered out of the box, we quickly realized it would not deliver the same user experience as Robert Scheitlin's (@RobertScheitlin__GISP) Enhanced Search widget in Web AppBuilder. With our tech lead out for three weeks, I had a window. I decided to use it.

I started with Esri's Query widget as a base, took design cues from Robert's Enhanced Search, and used Vector Coding to go from concept to what you see here. My team has tested these widgets extensively, with a handful of enhancement requests in the backlog.

QuerySimple is designed to explain itself so users can work confidently without reading documentation. Every mode, every control, and every state has a plain-language description of what it does and why something may not be available. For those familiar with the old Web AppBuilder, the advanced query and draw functions lived separately. I brought them together under one roof in the Spatial tab. While I am biased, I think the result is fairly intuitive.

I have been building this for what feels like an eternity. There are a lot of little things baked in that you will discover as you use it. Every time I said "I'd prefer this to be done this way," I made it a configurable item, because not everyone likes it my way. The features listed here are the highlights, but the details are in the demo.

Screenshot-2026-03-19-100014

Try It Live

https://exb-sample.mapsimple.org
https://exb-sample.mapsimple.org/#pin=2223059013
https://exb-sample.mapsimple.org/#major=222305

When you open the demo, look at the layer list. The magnifying glass icon is a persistent result layer controlled by the layer list, like any other operational layer. The funnel icon is a widget-managed graphics layer that appears and disappears based on the widget's state. Both are live in the demo, so you can see the difference in action.

Screenshot 2026-03-19 100323.png


HelperSimple

ExB widgets only exist in the DOM when they are open. A collapsed widget is not listening. HelperSimple solves this by running independently of widget state, continuously monitoring the URL, and opening QuerySimple and firing the appropriate query when a matching parameter is detected.

  • Always mounted and always listening
  • Maps ShortIds (e.g., pin) to technical field names (e.g., PROP_KEY_NUM)
  • Hash fragment (#) support for page-reload-free navigation
  • Auto-generated info button per layer: when a ShortId is configured, a help icon automatically appears next to the layer title, showing users the exact URL format for both hash and query string deep links

Screenshot 2026-03-19 093420.png


QuerySimple

  • Hierarchical two-dropdown UI: group 30+ queries without list fatigue
  • Typeahead and suggest: configurable per query
  • Results mode control with contextual helper text: each mode (New, Add, Remove) displays a plain-language description of its behavior so users understand the outcome before executing
  • Execute on Enter with input-driven validation
  • Dynamic zoom control with user override at runtime
  • High-volume result loading: full result set at once, no lazy-loading
  • Label point centering for irregular polygons
  • Duplicate button: clone queries with all settings preserved
  • Mobile per-breakpoint configuration overrides
  • Result layer modes: widget-managed graphics layer or persistent layer list layer
  • Selection styling: color, opacity, outline, marker style per query
  • Multi-source results support: parcels, address points, wetlands, school districts, and more can all coexist in a single result set. Open Table opens all source tables independently. Export zips each data source separately, preserving the original schema per layer.

Screenshot 2026-03-19 093631.png


Spatial Query Tab

  • Two modes with plain-language descriptions: Operations and Draw each display a description of their purpose when selected
  • Smart tab default: if no results are loaded when the Spatial tab is opened, the widget automatically defaults to Draw mode
  • Contextual disabled state messaging: when Operations mode cannot execute, a plain-language callout explains why and directs the user to the correct action
  • Operations mode: use results as source with real-time geodesic buffer preview on the map as distance changes
  • Draw mode: 7 tools, including freehand line and polygon, geometries accumulate
  • Multi-target layer selection: run a single spatial operation against multiple target layers simultaneously, and the results from all layers come back together in a single execution
  • 7 spatial relationships with context-aware warnings: when a selected relationship combined with the current geometry or buffer is likely to return zero results, an amber warning explains why before execution
  • Spatial relationship help: most relationships include a built-in visual diagram showing geometry type compatibility, plus a plain-language description
  • Spatial-only query layers: configure layers for spatial operations without exposing them in the attribute search dropdown
  • Results mode control (New/Add/Remove) available on the Spatial tab
  • Configurable draw symbol color and buffer preview color

Screenshot 2026-03-19 094233.png

Screenshot 2026-03-19 094032.png

Screenshot 2026-03-19 094331.png

Screenshot 2026-03-19 093827.png


Performance

  • 93.4% query latency reduction via Universal SQL Optimizer (21.1s to 1.4s on 2M+ record layer)
  • 93% memory reduction per query

Developer

  • Glass Box debug logging via URL: ?debug=all or specific flags
  • Independent versioning and config migration

GitHub: https://github.com/MapSimple-Org/ExB-Simple-Public
Docs: https://mapsimple.org/samples/querysimple-helpersimple-widgets/

ExB Developer Edition 1.19.0+. Open source, free to use.

4 Replies
adamsimple
Occasional Contributor

With ExB 1.20 released, I am working through addressing changes between 1.19 and 1.20. I should have a new release available early next week. 

ncramer11
Occasional Contributor

Hello Adam! This looks like a powerful upgrade of the standard Query widget. Can you confirm if a release for ExB 1.20 is available? Or does the 1.19+ version work?

0 Kudos
RyanKelso
Frequent Contributor

Hi Adam. One of your friendly neighbors to the south in Lewis County here, I'm working on rebuilding several of our GIS applications with Experience Builder. What to do about replacing the functionality of Enhanced Search is something I have not sorted out yet, and it's been concerning. I can't even tell you how excited I am about your MapSimple widgets. Thank you for this!

0 Kudos
adamsimple
Occasional Contributor

You’re welcome! We are all in this together, right? If you have feedback or suggestions, I am more than happy to try and accommodate. I am trying to give this widget maximum flexibility so people aren’t locked in to the way we like doing things at King County. 

0 Kudos