Have you ever wanted to identify the perfect location for an event, such as a wedding, a meeting, or a workshop? Quartic worked with a client who identified ideal event locations based on a customer's specific event needs and then coordinated with local jurisdictions to obtain any required permits for the chosen location.
Quartic configured the tools to quickly answer questions from the client’s customers, such as, “Where can I have a gathering for 50 people on a Thursday afternoon in a suburban neighborhood within 200 feet of a park?” Using GIS, Quartic could configure the tools to quickly answer client customer questions, such as “Where can I have a gathering for 50 people on a Thursday afternoon in a suburban neighborhood within 200 feet of a park?” Relying on outdated and slow technology and a manual process to find ideal locations was replaced by a GIS-based web application that identifies ideal event locations based on complex search criteria. There were 3 primary goals that Quartic needed to address when configuring a GIS Enterprise environment:
The client already used the Cloud, so Quartic architected a Geospatial Cloud solution using the ArcGIS Enterprise Platform. Google Cloud was used for the underlying infrastructure. ArcGIS Server and Portal were installed, along with a PostgreSQL geodatabase to enable the client to edit their GIS data, and publish it to the web. Utilizing Esri’s out-of-the-box Web AppBuilder for Portal, Quartic designed a web application that could search through many GIS layers to identify event locations based on specific needs.
In addition, the client also needed to be able to filter all of the data in the map by date and time as well as location. To address the date/time component of the filtering, Quartic designed a custom widget to be used in the application that could filter multiple layers in the map by date range and time range. To satisfy the need for data editing, a second application using Web AppBuilder was configured that takes advantage of Esri’s existing editing widgets. By utilizing a combination of COTS solutions and minor enhancements with code, all public and internal requirements were successfully met.
Separate CentOS virtual servers are used to install the ArcGIS Server and Portal. Another CentOS server was used to host a PostgreSQL geodatabase. Once the software was installed and configured, the ArcGIS Server was federated with the Portal. Portal was configured to use the client's SAML identity provider for a single sign-on experience. Since the identity provider is hosted in an Azure cloud, it allows safe, secure sign-in for both on-premise users and remote workers. A Google file share was added to the VPC for regular backups. Native PostgreSQL tools were used to schedule regular database backups. The ArcGIS Enterprise WebGISDR utility was configured to create regular Portal and ArcGIS Server backups.
Web AppBuilder was chosen to create the application because of the ease of setting up and maintaining it. Using Web AppBuilder meant the application was hosted in Portal and could easily utilize public GIS services and any client data hosted in Portal. The screening widget was the main component of the application widget. This widget allowed the user to search by entering an address or drawing a point, line, or polygon on the map. They could then add a buffer to search results within that radius. The screening widget would then search all layers turned on in the map to find locations within the search area. The output could then be printed as a PDF map, or exported to a CSV file. This enabled the client to keep a record of the results at the time they performed the search.
The custom widget was customized using the "Filter" widget as a template. The Filter widget already had a method to allow user input for a date range, so modifications could be made to the internal query to allow a date search. These modifications included customized field names, data format considerations, and Boolean logic changes (from AND to OR as needed). Additionally, the modified query could be looped through a list of layers to accomplish the multi-layer requirement. The custom list of layers and their associated field names were contained in the configuration JSON, just as the normal widget configurations are kept.
The time portion of the filter was more complex. Time values needed to be entered by a user as a string in the format "HH:MM." This was needed to separate the date values from time values so that users could see when features overlap only a time range (such as during a sunset). Applying this filter to a date/time field required significant parsing of the original query to allow the custom variables to be fitted. Adding to the complexity, this data did not exist for a time, so the initial prototype used an assumed time structure. Adjustments had to be made once this was added to the source data. A requirement for a "time buffer" component to allow users to assume late projects also became complicated when approaching midnight (either as a pre-buffer or post-buffer of the range). Complicated conditional logic was written to account for day-crossing buffers.
In addition to an application to search for event locations, the customer requested an application for their Community Outreach team to be able to edit their data through the web. These users would not have any GIS experience and needed an easy and intuitive way to edit the data. Using database roles and groups in Portal, Quartic was able to publish the two community outreach layers to Portal while only allowing those Community Outreach staff the ability to edit the data. Once published as a service, those layers were used in the Smart Editor widget in Web AppBuilder, which could easily be edited with minimal training by the Community Outreach staff.
There was some initial apprehension amongst the staff who would be the ones using the application. Although trained IT staff would maintain the GIS architecture, the users of the application and those maintaining the data weren't technical staff and were hesitant to learn unfamiliar and new technology. After completing the initial application, Quartic provided a demonstration, training session, and written documentation to all the staff using it. When the training was completed and the staff could see how robust and easy to use the application was especially compared to their old environment, there was overwhelming excitement for a new application that would make their job easier.