Delivering accessible mapping applications for everyone [Geocortex Tech Tip]

Accessibility has become a top-of-mind topic for businesses, government agencies, and developers of technology in recent years; U.S. legislation like Section 508, which requires inclusivity for end-users of all abilities, has emerged in recent years and historic exemptions for web mapping have been eliminated.

Since 2015, Geocortex Viewer for HTML5 has been accessible out-of-the-box and meets the criteria to be Web Content Accessibility Guideline (WCAG) AA compliant, without requiring administrators to undertake complicated and onerous configuration or development. In this week’s Tech Tip, Garrett takes a closer look at screen reader support, keyboard navigation, and other accessibility features that ship with Geocortex Viewer for HTML5.

Watch on YouTube

 

Video Transcription

“Hi my name is Garrett, I work on the Product Experience Design team here at Geocortex. Today we’re going to take a look at some of the accessibility features included in our viewers. You don’t need to do anything to configure these – they’re all included out-of-the-box with every viewer implementation.

Geocortex Viewer for HTML5 is accessible and meets WCAG AA standards. This has taken a lot of work on our part to look at many different things, from color contrast to screen reader support to keyboard navigation.

Let me show you how keyboard navigation works in [Geocortex Viewer for HTML5]. First, we have skip links. When you first come to our viewer and use the tab key to navigate throughout the application, the first time you hit “tab” you’ll be presented with what we call skip links. This gives you quick shortcuts to jump to popular portions of our viewer.

The skip links allow you to jump to other regions in our application without having to tab through each individual, clickable item. If we wanted to jump straight to the tool bar, we just tab over and hit enter. Now once the toolbar is open, we can navigate through the different tabs on the toolbar to find an individual tool that we want to use.

Let’s try drawing a polygon on the map. When we activate the drawing tools with keyboards, we have activated “accessibility drawing mode”. Once we’ve activated the polygon drawing tool, our focus is now on the map, as indicated by the purple line around the map. We can now draw on the map using the keyboard.

Hitting Enter will drop a marker in the center of the map extent, and we can control the position using the arrow keys on the keyboard. Hitting Enter will drop a vertex on the map, from which now we can move our cursor around with the keyboard. Hitting Enter again will drop another vertex. If you find that the increments with which the keyboard moves around is too large, you can hold the Alt key and you get a more fine-grained control over where you want to drop the vertex.

Hitting Enter again will complete the shape, and now we can edit this shape using the keyboard shortcut “V”: we can cycle through all the vertices, which we can move. Holding Shift+V will cycle the vertices in reverse order. Between each vertex, another handle will get added that we can then drag out to edit the shape, which will add more handles that we can edit. When we’re done drawing the shape, hit Enter again to complete the shape. And now your shape is drawn on the map. If you hit Enter again, you can draw a second shape. And that’s how you draw on the map with the keyboard.

Another great accessibility feature in our viewers is screen reader support. Geocortex Viewer for HTML5 supports the combination of Firefox with the NVDA screen reader. The screen reader will read aloud changes in the application, links, text, map location, those sorts of things.

In combination with some of the keyboard support, we can navigate through the viewer and the visually impaired will have the benefit of a screen reader reading out the context and instructions to them. Let’s try a couple examples here.

[Screen reader reading results]

Now know that we can perform a search because the screen reader has read out those instructions for us. So, let’s perform a simple search.

[Screen reader reading results]

After we perform the search, the screen reader read out that we’ve closed the home panel and opened the search results panel. We can tab through here to hear other instructions.

[Screen reader reading results]

As you could hear, as we zoom to all the features in the feature collection, the screen reader read out the coordinates and extent change on the map to keep users centered with where the map is now located.

To learn more about accessibility with our viewers, you can visit our Documentation Center at docs.geocortex.com. Just search for “accessibility” and you can read all about accessibility in our viewers, including a detailed list of all the keyboard shortcuts to help you navigate through applications with just the keyboard.”

​You can learn more about Geocortex Essentials accessibility features in our 2017 webinar, which is available on YouTube here.


How to search for data in a non-spatial database [Geocortex Tech Tip]

Maps allow you to visualize data in meaningful ways and expose patterns that can’t be seen anywhere else. One of the challenges, though, is that your most important business data typically lives in another system or database. This can become even more challenging when it’s data stored outside your geodatabase.

In this Geocortex Tech Tip, Drew Millen shows you how to search for data in a non-spatial database (such as Oracle or SQL), find the spatial relationship, and display it on a map. 

Watch on YouTube

 

Video Transcription

“Hi everybody, I’m Drew with Latitude and in this Tech Tip we’re going to look at searching for non-spatial data. That’s data stored in Oracle or SQL Server… somewhere that’s not in your geodatabase. We’re going to look for that, find the spatial relationship, and display it on a map, so let’s see how we do that with Geocortex.

What we’re looking at here is a very basic Geocortex viewer application that’s been configured with a single layer called “Land Use”. This contains polygons of different types of land uses and what I’m interested in is this “Arts and Recreation” land use polygon, which contains park information for Los Angeles County. I also have a database table - in this case, an Excel spreadsheet of trees. Now notice that I‘ve got records of all the different types of trees that exist, but I don’t have location information for these. In other words, this is a non-spatial database table. This could live in Oracle or SQL Server, but for the sake of this demonstration it’s just an Excel table.

We’ve got a facility that tells us which park this tree belongs to, but we still don’t have its “XY” location on the map. What I want to find out is where I can find certain trees in my county, so, what parks do I have to visit to discover certain types of trees.

Now in this application, I’ve got a data link between my parks layer, or my land use layer, and the tree database. So, if I have a park selected, and I view the additional details for [the park]; I can see the spatial details associated with that park and I can also see the trees that are within that park, but I’m not quite there. What I want to find out is which parks contain which trees... and remember, my trees don’t have “XY” locations.

How do I solve this? Well, I’ve already set it up so that we can do a search against this Excel table. So, if I do a search for the word “macadamia”, for example, I will find search results from that Excel table, but I still don’t have the location on the map where these macadamia nut trees exist. I need to create a “join” between these search results and a spatial layer on the map to find the underlying spatial feature. In other words, the park that the trees live within.

What I can do is come back to Geocortex Essentials Manager where I’ve configured this application. And to connect to this Excel spreadsheet, I’ve established a data connection. You can see the connection string that we’ve used here simply points to the spreadsheet. If you’re connecting to Oracle or SQL Server, there’s different syntax that you would use for your connection string, but the same idea exists.

Now that we have that data connection, we can set up what we call a “Search Table.” And a search table gives us a select clause: in other words, which fields are we interested in returning from that table when the user issues a search. In this case, we want the user to be able to search on the common name of the tree (like my example when I typed in the keyword “macadamia”) and find all the attributes from the LA Parks trees in this database. So that search is set up.

I’ve also got the land-use layer in my site configured with a datalink. This datalink means that the layer is joined to this data connection, so that every time I click on a park on the map, I see the associated records from my Excel spreadsheet. Recall, however, that I want to do the reverse. So, our current datalink makes sure that every time I select a park on the map I’m grabbing the trees and joining it on the facility column. Notice that facility column is the name of the column that we're using in the spreadsheet to represent the park that the tree exists within.

There’s this section down at the bottom, here, that allows me to add a search, so that’s the reverse of what we’re currently doing, and it allows me to use one of the searches that I’ve configured to find these features from the land use layer that match my search criteria from my datalink.

I’m going to give this a display name. We’ll just use “Park Trees Search,” and the search table that I’m searching on is the only one that we’ve configured in our site earlier, so it’s this Park Trees Search table. And then the field that we want to join is called “Facility,” and that maps to the name of the land use polygon. So that’s where we get our many-to-one relationship from. I’ll go ahead and save the site with those configuration changes and then refresh our viewer.

Now I’m going to issue a search for the word “macadamia” like I did before, and I’ll find the same four results from my Excel spreadsheet. But now when I drill into a result, we can see the facility that it belongs to. It exists in two different parks: there’s “Runyon Canyon Park” and “Runyon Canyon Park – MRCA”. If I click on one of those it’s going to take me to the park where I can discover these macadamia trees.

Hopefully this quick Tech Tip has shown you how you can configure a non-spatial data source to be searchable inside your viewer and still return spatial results. Thanks for watching!”

Explore more Geocortex Essentials functionality in the Discovery Center.

Discover Geocortex


Configuring Geocortex Analytics to monitor a new Portal for ArcGIS instance [Geocortex Tech Tip]

Geocortex Analytics helps you get a complete picture of your GIS infrastructure; you can ensure peak performance, keep your users happy, and avoid interruptions. For many of us, Portal for ArcGIS is a critical piece of the GIS environment, and one that we want to monitor.

In this Geocortex Tech Tip, Aaron Oxley shows you how to configure Geocortex Analytics to monitor a new Portal for ArcGIS instance.

Watch on YouTube

 

Video Transcript

“Hi, my name is Aaron Oxley. I’m a Product Support Analyst at Latitude Geographics and in this video I’ll be explaining how to configure Geocortex Analytics to monitor your Portal for ArcGIS.

Once you're logged in and looking at the summary page in your Geocortex Analytics reports, click the “configuration” link in the top right corner. And that will take us to the configuration overview page, and we can see to add a new resource, we need to click “add resource” in the bottom of the resource list. Let’s go there.

Portal for ArcGIS is what we’re after. As you can see, there’s not a lot of configuration required. The first thing that we need is a name. This is what’s going to show up in reports, alarm emails, and texts. I like to use the name of the server where the portal is hosted, even if you only have one portal, it’s a good naming convention in case your environment grows in the future.

In the next field, you’ll need the URL to your Portal for ArcGIS. You can see there’s an example here; the default URL is “servername/arcgis”, but if you aren’t sure about what to put here you can confirm the correct URL by testing in a browser.

I’d like to do that, so let’s open a new tab and load up our portal. We can see this is our portal, so we know the URL is correct. Let’s copy it and take note of the protocol. We can see here that it is HTTPS. We’ll paste the URL and toggle the protocol field to HTTPs.

Now lastly, because your Portal for ArcGIS is secured, you need to enter credentials, and they need to be from an administrator account. There’s five options here. First one is token, and if your portal uses token authentication it’s very straightforward: just enter a username and password for an administrator and click save.

The next option -- OAUTH2 -- is certainly the most common, and it’s also Esri’s recommended methodology for user sign in. We see a message here that we’re going to need an app that has this redirect URI. We’re also going to need an app ID, an app secret, and lastly, we see a message letting us know that we are still going to need to provide administrative credentials.

So, let’s go and get this app created: come over to your portal and click “content” in the top. Under my content, click on “add item” and select an application. In here, we’ll select an application again and enter a title, and some tags. If we click “add item” that will create our application, and we can see it there.

Under the “settings” tab, near the bottom, there’s a registered info button. If we click that button, and then click the update” button, we can enter a redirect URI. If you remember from the configuration page here, we have the redirect URI specified. We can copy that and paste into here. Click the “add” button and it shows up in the list below, click the “update” button and it’s all set.

Now lastly, before we go back to the configuration in Geocortex Analytics, we need the app ID and app secret. Go ahead and copy the app ID, paste into the corresponding field in Geocortex Analytics. Same thing with the app secret. That’s all there is to it. We can now click “save” and we should be prompted to sign into ArcGIS Enterprise.

So, this has now taken us to Portal for ArcGIS. These are administrative credentials for portal, so this is an account that has administrator access. “Sign in” brings us up to “Save Successful” and we can see that it was saved successfully.

The third option for authentication types is good old Windows authentication, and it really is as simple as entering username, password, domain, and clicking save. As with the other types, this does need to have full administrative access.

And the last two options are just combinations of the previous three in case your portal is configured with two layers of security. But the procedure is the same. Just follow the exact same steps as for these ones above. And that’s all there is to it.

Once again, my name is Aaron Oxley, I hope this video was helpful. Thanks for watching!”

To learn more about how Geocortex Analytics can help you get a better understanding of the performance of your GIS, please get in touch and we'd be happy to take you on a tour of the product.


Getting started with forms in Geocortex Workflow 5 [Geocortex Tech Tip]

You hear us talk a lot about the importance of keeping your end-users in mind when developing GIS tools and applications; we built Geocortex Workflow 5 to help you improve user experience by allowing you to guide end-users through complex business processes in simple, intuitive ways, which is largely achieved through forms for capturing user inputs.

The improved forms offered with Geocortex Workflow 5 go beyond just simple text inputs; you can present users with checkboxes, dropdown menus, and geometry and file pickers. In this Geocortex Tech Tip, Ryan shows you how to get started and build your first form for deployment inside Geocortex or Web AppBuilder for ArcGIS.

Watch on YouTube

 

Video Transcript

“Hi, I’m Ryan, and I’m a Product Manager at Latitude. Today I’m going to show you how to get started and build your first form with Geocortex Workflow 5. Let’s get started.

One of the main uses of [Geocortex] Workflow is to create an experience that guides the end-user through some sort of business process. Typically, what that means is that we are presenting forms to the user so that we can capture inputs from them, then pass on to the rest of our workflow, which actually executes the business logic based on the data the user provided. So, an indispensable tool in [Geocortex] Workflow is the “display form” activity, available here in the tool box.

To get started, just drag [the “display form” activity] onto the design area and connect it to the flow chart. Now we have a workflow that contains one “display form” activity. If I double click that activity, it opens the form designer experience. We can see here that I have a header that contains my title, and a footer that’s got some buttons in it for “submit” and “cancel”. So that’s what we have by default.

I can change the title of the form if I want to "My form". And if I wanted to, I could change the buttons around to “back” and “next” instead of “submit” and “cancel” or add and remove buttons as needed.

And then we’ve got a selection of form inputs that we can choose from, depending on what type of information we need to capture. So, just starting with something simple, a textbox, we can drag that onto the [design area]. And let’s say that we wanted to create an address entry form. I can change that textbox’s title to just be “address”. And if I want a little description underneath that, I could put something like “enter an address” in there and it shows up.

There’s even some cool things that we can support, like markdown, to make it have some improved formatting. If I wanted bold or italics, or things like that, that’s available. And I can supply a value.

Okay, so that’s sort of a basic input that we’ve fleshed out. There’s also all kinds of other things that we can add. If I wanted radio groups or check box groups, dropdown lists, all sorts of things are possible in here. And even things like a geometry picker is going to allow the end-user to draw a shape or multiple shapes on the map. File pickers can [also be used to] capture pictures from phones and things like that. All these different items are available in here.

So now what we do is, I’m going to hit “Ctrl+S” to save this and am going to demonstrate this form running in our sandbox application. So, we can see this workflow running with various Esri APIs - in this case just a 2D map. Here’s the form showing up, as it was designed. There’s my text input, I’ve got radio buttons that we didn’t bother to configure, I’ve got a geometry picker that’s going to allow me to draw a shape on the map. All that information is available just from that, the simple clicks that set-up that form.

And the last thing I’ll show here is a couple real applications. This is just a sandbox for testing, but if we were to look at WebApp Builder [for ArcGIS], I can connect to a widget that’s going to run that workflow.

Here’s that exact same form running from the workflow I just edited, available here. That’s a 2D Web AppBuilder for ArcGIS application, and then here’s a 3D one that runs a completely different viewer and a completely different layout that’s being used, but it runs just the same, so we can get our forms rendered and we can start capturing input.

That [should be] enough to get you started. Stay tuned for future [Tech Tips] where we look at how we can get this data out of the form and pass it on to our workflow process.”


Using Geocortex Workflow with Web AppBuilder for ArcGIS [Geocortex Tech Tip]

Last year’s release of Geocortex Workflow 5 (the first product in our Geocortex Essentials 5-series) introduced the ability to leverage Geocortex functionality inside Esri applications, not just alongside them. This was a major milestone and presents a new realm of implementation possibilities for licensees of Geocortex Essentials 5-series technology.

Geocortex Workflow 5 allows you to deploy your workflows in Web AppBuilder for ArcGIS applications. In this week’s Geocortex Tech Tip, Ryan Cooney takes you through the set-up and configuration required to deploy 5-series workflows in Web AppBuilder for ArcGIS Developer Edition.

Watch on YouTube

 


Video Transcription

“Hi, I’m Ryan. I’m a Product Manager at Latitude. Today I’m going to show you how to use Web AppBuilder [for ArcGIS] to run Geocortex Workflow 5. Let’s take a look.

Web AppBuilder [for ArcGIS] uses widgets to deliver custom functionality to your end-users. To get a workflow running in Web AppBuilder, we need a widget that’s going to run the workflow. Geocortex Workflow ships with some widgets, but to run a workflow, we’re going to have to make those widgets available to Web AppBuilder.

To do that, we’re [going to start] in Geocortex Workflow Designer. On the “info” tab, there’s a deployment section that has a link to download workflow widgets for Web AppBuilder, so I’m going to click that.

That’s going to download a .zip file, which we’re going to use in a second. And while we’re here, this page has a link to configure Web AppBuilder for ArcGIS to run a workflow. As we open that link, we’re taken to the [Geocortex] Documentation Center where we have complete instructions on how to set up the widget.

There’s actually two flavors of this set up. Today were going to look at Web AppBuilder [for ArcGIS] Developer Edition. It’s the slightly more complicated of the two, but we can also work with the edition of Web AppBuilder that’s built into Portal for ArcGIS. There’s slightly different steps that were going to take, but basically, it’s going to be the same process in which we tell Web AppBuilder where the workflow widget lives.

Once we’ve done that, we can use Web AppBuilder for ArcGIS to see that widget and configure it to run a particular workflow. So, these instructions are [in the Documentation Center] and I recommend reading them, but I’m just going to show you how it’s done.

First, I’ve downloaded that .zip file and I open it up (it’s just sitting here in my downloads). And then I need to go to where Web AppBuilder is running. So, in this case I’m just running Web AppBuilder out of this folder, and inside the Web AppBuilder folder structure, there’s a client folder, and in there is the stem app and the stem app 3D.

Inside of the stem app there’s a “widgets” folder, and this is where all the built-in and custom widgets live. What we need to do is just copy out of the downloaded one, so it’s got the same structure - it’s got a stem app, it’s got widgets, and there’s two widgets in 2D and two widgets in 3D. So basically, what we do is copy that entire client folder over top, and that’s just going deploy both the 2D and 3D widgets. And now we can go over into Web AppBuilder and start configuring these.

I have Web AppBuilder open right here, and I’ve got an existing application that’s basically empty. Web AppBuilder (if you’re not familiar with it) has all these spots where you can plug widgets in. Depending on the layout, it might be these buttons, or it could be in the tool bar.

But if we select widgets, and I hover over our widget place one, you can see that it’s highlighting it on the screen. And if I pick widget one, we have those two workflow widgets [that I copied over a moment ago]. The first one is just the in-panel widget, that’s your most common. And then we also have one that will run in a modal window, but they basically do the same thing. So, I’m going to choose the in-panel one.

Now, I’ve added that widget and what I need to do is tell this widget to run a particular workflow. So, that workflow that I was working with over here, which is called “autocomplete1”, it was really simple. It just had a form that had an autocomplete in it. I can look in my content and find it, or I can search for other workflows, but here it is right here. If the workflow happened to have input parameters (this one doesn’t) you could add them here. This was just a list of key value pairs, but I don’t need those in this case.

And there, it’s added that workflow. And if I run it, here’s my autocomplete. It’s not hooked up to anything, but that’s the workflow running inside Web AppBuilder. This will work for 2D and 3D. This is the Developer Edition we’re looking at, but also if you had followed the instructions on deploying to Portal for ArcGIS, you can get that too, it’ll work just as well in portal for ArcGIS’s version of Web AppBuilder. That’s all you need to do to get up and running running inside of Web AppBuilder for ArcGIS.

Want to take Geocortex Workflow 5 for a spin? Visit the Discovery Center today to learn more and get a feel for the product!

Go to the Discovery Center


Understanding tool usage in your GIS applications [Geocortex Tech Tip]

Your GIS is about serving your users and keeping them productive, and it’s important to understand how they’re interacting with the tools and apps you’re providing. Being able to dive into the usage of specific tools is a major component of understanding the return on your GIS investment.

In this Geocortex Tech Tip, Derek Pettigrew (Geocortex Analytics Product Manager) shows you how Geocortex Analytics allows you to drill down and understand usage levels for the specific tools in your applications.


Watch on YouTube 

 

Video Transcription

“Hi, my name is Derek, I’m the Product Manager for Geocortex Analytics. Today, we’re taking a look at tool usage in your Geocortex applications to understand how your end-users are interacting with your apps in more detail. Let’s take a look.

Here we are in Geocortex Analytics, and we’ve drilled down to the Geocortex application section, looking at the LA County applications. What we’re looking to understand is how users are engaging with the tools in our application. As you can see, we have this wonderful panel to tell us that information.

We can see how the workflows are a very popular item for tools, along with identification, active tool sets, simple query builders, and many others. You can drill down further and see that there’s markups, collaboration going on, layer catalog usage - all very useful to understanding the return on investment around those tools.

Not only can we do this, we can also go through and break this down into further details to really see, at the granular level, how people are engaging with your tools. If I select “include details” I can now see that my identify operation is mostly [used] through the rectangle tools. My “run workflow” is a demographic query area, and I can continue back and forth through this looking at different areas, [for example], seeing that the other run workflows here are for parcel reports.

And If I really want to understand my workflows and which ones are being used in this application, I can filter this [view] to only show me the workflows I actually want to see. So, I put workflows in, and now I can see my workflows by popularity of use for this tool, and how often they were used in the “occurrences” area here. I can see my demographic query one is very popular, followed by parcel reports, profile tool, drive time, and road closures.

By using this, we can really understand what’s going on with your end-users, so we can build better tools to help them accomplish their tasks. That is all, thank you!”

Are you thinking it might be time to assess the health of your GIS? We've created a checklist that will help you perform a user-first GIS health assessment. 

Download the checklist


Running Geocortex Essentials workflows from an identify operation [Geocortex Tech Tip]

The Geocortex Essentials identify operation allows you to draw a geometry on the map, and have the application return a collection of features that intersect that geometry. But the identify operation will only return results from your GIS layers, and many (likely most) of us integrate our GIS with various 3rd party business systems, such as asset management, document management, ERP, and business intelligence.

In this week’s Tech Tip, Drew Millen will show you how to invoke a Geocortex Essentials workflow from an identify operation to return non-GIS results. Perhaps you want to see documents in your document management system displayed on the map, or geo-located tweets for a specific area. Kicking off a workflow from the identify operation will allow you to display these types of results and will help you avoid writing a ton of custom code to do so.

Watch on YouTube

Video Transcription

“Hi, I’m Drew Millen, Director of Products at Latitude. In this short Tech Tip video, we’re going to talk about workflows; specifically how you can make Geocortex Essentials workflows run in Geocortex Viewer for HTML5 when you perform an identify operation. Let’s dive in.

I’m going to show you how to use identify workflows, which are Geocortex Essentials workflows that piggyback on top of the identify functionality. In this site, I’ve got the default identify behavior working, so when I perform an identify [operation], I’m going to find cities on top of this map, and I want to run a workflow every time I perform an identify as well.

Let’s look at the configuration file that supplies the configurations for this viewer. There’s a module in here called “identify”, and we want to configure the identify behavior. This [view you’re seeing] is the desktop.json.js file that configures the viewer we were just looking at. Notice that the identify module has a section called “identify providers”. It’s here that we specify which logic will run when an identify is performed by a user: for example, querying a graphics layer, or querying the map itself. And down here, I’ve added a workflow identify provider. I’ve also supplied some configuration to this identify provider, so it’s looking for workflows in my site with the suffix “_identify”. Any workflow I’ve added with this suffix will be run by this workflow identify provider.

With that in place, let’s author our workflow. I’m going to open the Geocortex Essentials Workflow Designer. If you go into the “file” menu and click on “new”, you’ll see that we’ve provided a template for creating identify workflows. This template supplies a basic example to help you get started. If you look at the arguments, an identify workflow is expecting a geometry as an input argument. That geometry comes from the identify the user performs. It’s also expecting a unique identifier just for some bookkeeping. We can just ignore that property.

The other properties are output arguments - things that your workflow must supply. For example, the feature set that’s returned from your query, the display name for that collection of features, and any aliases and formats that you want to use for the features that come back. In this example, we simply query a sample layer from ArcGIS Online that looks at [US] states. The geometry from the identify operation is passed in as a parameter to perform that identify. We set the display name to be "states” and we supply some aliases for the fields that are going to come back, making it readable for the user. And we supply some format strings for features that are going to be displayed in the map tips and results list.

With this workflow developed, we [now need to] attach it to our site so that it can be run every time we perform an identify operation. Let’s look at this app in Geocortex Essentials Manager, and I’ll navigate down to the workflows tab where I want to attach this workflow that we were just looking at. Recall that it must have an “_identify” suffix to be picked up by my workflow identify provider. I’ll give it the name “helloworld_identfiy”. Now it’s looking for the URL or URI of the workflow I just authored. So, I’m going to browse for that, and I’m going to go into the directory that we have for this site. I’ll upload it into a folder I created called “resources”. It’s now stored on my workstation as “helloworld_identfy.xaml”. I’m going to go ahead and upload it to that directory and select it.

Now Geocortex Essentials Manager is smart enough to know that this workflow has parameters, so I’m being prompted to supply them here. Because the geometry and unique identifier are going to be supplied by the identify operation, we don’t need to supply them here.

The workflow is now attached to my site, so I’ll go ahead and save it. Let’s refresh the viewer and see the resulting behavior. I’m going to run an identify again, which will identify the cities, but it should also run my workflow and grab the states. Here we can see the result of my states workflow populating the list of results that I expected.

To view a more sophisticated example, we’ve also done the same thing by integrating a workflow that uses the Twitter API to find tweets within a geographic area. In this case, I’m going to perform an identify at the San Francisco airport and discover all the tweets that have been added in this area in the last hour. This is a more sophisticated example of using an identify workflow in a Geocortex Viewer for HTML5 application. To learn more, please get in touch. Thanks for watching!”

Want to learn more about Geocortex Essentials? Visit our Discovery Center to take it for a spin and explore real-world examples of how Geocortex Essentials helps organizations address common (and not-so-common) business challenges.

Visit the Discovery Center

 


GIS Health Assessment: A new way to think about your system

When we think about the health of our GIS, many of us are used to beginning with the infrastructure. After all, it is what drives the technical performance of your system. The problem with starting at the infrastructure level, though, is that it’s difficult to get a complete picture of which aspects of the GIS are most important to your users.

While the GIS infrastructure is extremely important, not all the resources in your environment are created equal. You might have some layers or services that are used 3-4 times a week, and others that are accessed thousands of times each week. While you want to do all you can to ensure the entire system is performing as it should, there are only so many hours in a day. With an infrastructure-first approach, you’re often unable to hone in on what the most important apps, layers, services, servers, and ArcGIS instances are. 

 

A new way to think about GIS health

It’s time we flip the traditional infrastructure-first approach and begin thinking about GIS health through the lens of end-user productivity. Your GIS is there to help your users do their jobs, so that’s where your analysis should start.

Whether it’s explicitly or implicitly, you’re going to be measured on the productivity of the users you build apps for, not the response time of a specific server. Without the users, there is no need for the GIS infrastructure.

By starting with what your users are trying to accomplish, you’ll be able to map your key business processes and user flows to the GIS infrastructure and resources that are most important to supporting them. Looking at your GIS from users’ perspectives allows you to better understand how it is being used day-to-day and identify the critical resources needed to support your monitoring and optimization efforts.

With so many moving pieces in your GIS, you don’t have time to treat everything equally.  Focusing your efforts will let you be much more productive and spend more time working on high-value activities.

When we talk about a user-first approach to GIS health, there are two major areas that you need to be considering:

Performance: While closely tied to infrastructure performance, what we mean here is the performance of your end-users. Are they able to do their jobs effectively with the tools and applications you’re building? Are your users taking longer than expected to complete certain tasks?

When these things crop up, a user-first approach will help you target your efforts and fix issues quicker. A good example would be if an application had a poorly performing layer. This would be an infrastructure performance issue, but if you understand what specific layers and services are used in that application, you will know where to look to address the issue.

Usability: If your GIS infrastructure is performing as expected, the next area to examine is usability. Usability is all about whether your applications are configured and designed in a way that makes sense for what your users need to do. Strong infrastructure performance combined with poor usability is still poor performance (remember, performance is about end-user performance, not infrastructure).

An example of how usability can affect performance is when a common tool is not in a prominent location in your app. If it’s difficult to find, users will waste time looking for it, take longer to complete a task by using a different method, or abandon it entirely. This is also true when incorrect layers are loaded by default – users end up wasting time searching for the layers they need.

Completing a user-first health assessment

Once you’ve adopted a user-first approach to GIS health, you’re ready to perform a user-first health assessment. What you’re trying to accomplish is mapping out the business processes and use cases that you manage with your GIS to the specific GIS resources that support them.

First, you’ll want to identify the different user groups that leverage your GIS. By user group, we mean a group of users that have common work patterns and engagement with your applications. This could be a group of people (or one person) with the same task in your head office, or it could be a specific field crew that uses an app on a tablet. The key here is to identify people who use the GIS in similar ways.

We’ve created a checklist to help you perform a health assessment; it’ll help you map what your different user groups need to accomplish to the GIS resources and infrastructure required to support their work.

The checklist contains areas to detail the users and what they need to do, the app(s) they use, the most-used layers, the services the app(s) consume, which ArcGIS products are used and how they’re configured, and the server(s) that support it.

Get your GIS health assessment checklist now  

What to do with your health assessment

Once you’ve completed your GIS health assessment, you can use the information you’ve gathered to proactively monitor the GIS resources that are the most important. Tools like Geocortex Analytics allow you to configure personalized dashboards that provide a snapshot of the resources you want to monitor.

You can also configure alarms and notifications in some systems monitoring tools. Because you know what you need to monitor, you can set thresholds for warning signs of potential issues and have notifications sent to your email.

Next, identify anomalies among your use patterns. If certain users are performing notably better or worse than the average, you can dive into the specifics of how those individuals are using the applications you’ve built. Replicate the superior use patterns and examine the weaker patterns to gauge if there is a potential gap in training or understanding of certain functions.

If you want to learn how all of this is possible with Geocortex Analytics, we’d like the chance to show you! We’ve recently added great new features (including individual user reporting) and made significant improvements to performance and reliability. Get in touch with us using the button below.

Let's chat


Using the in-app help system in Geocortex Workflow 5 [Geocortex Tech Tip]

Geocortex Workflow 5 offers such a wide variety of activities, tools, and functionality that it can be a little confusing to understand exactly what everything does. To help you out, we’ve added several in-app features that provide context and help you better understand the tools and activities you’re using.

In this week’s Geocortex Tech Tip, Ryan Cooney (Geocortex Workflow 5 Product Manager) provides a detailed look at how to use the in-app help system to build the best workflows possible. 


Watch on YouTube

 

Video Transcription

“Hi, I’m Ryan, and I’m a Product Manager at Latitude. Today we’re going to look at the in-app help system in Geocortex Workflow 5… lets do it!

When you’re authoring a workflow, there’s a number of ways to get help. The first is going to be through this help menu. If I click on the help button, it’s going to open this help tab. It’s got a few standard links to useful parts of our documentation:

  • “What’s New” is basically our release notes. Every time we update [Geocortex] Workflow, we’re going publish to this page.
  • And this is on a public Documentation Center, where all of our Geocortex [product documentation is available]. Geocortex Workflow is in here, and we’re describing any new features that have been added, as well as any issues that were fixed. [You can access] the full details down here.
  • Also, we’ve got a couple sections here on key concepts and getting started. This is a great place to start for anyone new [to Geocortex Workflow]. It will take you through basically an end-to-end process that will help you get up and running with [Geocortex] Workflow. You can use this to [help you] build your first workflow.
  • We also have complete documentation of all the activities and form elements that are supported in [Geocortex] Workflow. And this is going to describe everything about the activity or form element; what its inputs are, what it’s actually doing. [You’ll also find] keyboard shortcuts, so things like “Ctrl+S” to save, and some more advanced topics are in here. [There’s] a full list of all the keyboard shortcuts we support.
  • The last link in here is a link to the Community. Geocortex Workflow has an [online] community where users can post questions to forums – we have product announcements in here, and there’s lots of good stuff in the forums, and there’s tons of traffic. So, if you have a question, do post it on the [Geocortex Workflow] Community and you’ll get feedback right away.

That’s it for the help panel itself, but there’s a few other places help shows up. Anywhere you see a question mark in the application, you can mouse over it and get some information about it: in this case, in the tool box, there’s information about these activities. I can see the “container” activity, and it’s got this information about it. And if I click the “more” link, it will take me to the [Geocortex] Documentation Center where it’s describing the activity and all of its inputs and outputs, as well as any info about whether this activity has any requirements for working offline. In this case, this “container” activity has no special requirements for offline. It will work offline.

We have this info available for every activity. If we look at an example from this workflow I’m designing right now, I can get the same information in the right-hand properties panel. So, if I just click on an activity, I get the same sort of information in this panel. And also, for any inputs, outputs or properties, I can get information about the specific ones. So, the “if” activity has a condition input that’s of type “Boolean”. In this case it’s taking me to the Mozilla development network, describing what a Boolean is.

But if we were to work within an Esri-specific activity that’s going to take something a little more complicated, like in this case a geometry. I can see that I’ve got a “set scene viewpoint” activity that takes a geometry, and that geometry can either be a 3.x or 4.x Esri Javascript API object. And if we click either of these links it will take us to the Esri documentation, so we can see how to go about creating one of these, or see what properties are available on a geometry.

The same applies to forms. If I open up this form and select “form element”, the properties panel is going to provide me information about -- in this case the “text box” input -- and if I click on “more info” I’m taken to a page describing this “text box” input, [including] all of the properties that it has available for configuration, and their type information.

So, there is help everywhere in [Geocortex] Workflow Designer, so take advantage of that help system. And all that documentation is in our public [Geocortex] Documentation Center that you can browse at your leisure, even outside of just Geocortex Workflow Designer, so take advantage of that.”

Want to see Geocortex Workflow in action and take it for a spin? 

Visit the Discovery Center


How to configure a personalized dashboard in Geocortex Analytics [Geocortex Tech Tip]

Geocortex Analytics dashboards allow you to monitor a collection of GIS resources all in one, easy-to-consume view. Dashboards can be personalized to contain whichever resources and infrastructure you want to monitor.

Perhaps you want to monitor the most-used resources for a set of your users? With Geocortex Analytics, you can build a dashboard that displays all the resources that are critical to the productivity of those users.

In this Geocortex Tech Tip, Derek Pettigrew (Geocortex Analytics Product Manager) shows you how to create a dashboard and populate it with the different resources you want to monitor. 


Watch on YouTube

 

Video Transcription

Hi, my name is Derek. I’m the Geocortex Analytics Product Manager, and today we’re going to take a look at configuring dashboards [in Geocortex Analytics], so you present all the panels you’re looking for in one place.

Let’s add a dashboard by going to the top right-hand corner, where we see “my dashboards”. We select this, add a new dashboard and name it based on the theme. I’m going look at a theme for LA County services, so I’ll call it that: “LA services”. By creating the dashboard, I now have one available, but I have not yet added any content to it.

To add content, I need to go and find the panels I want to add to my dashboard. We’re looking at services performance overall, so we’ll probably want to see things that impact it, such as [the physical] server, the ArcGIS server, and maybe Geocortex Essentials as well.

Now looking through [Geocortex Analytics], I have a panel in front of me with a lot of service information on it, but it’s not just for the LA County area that I’m looking for. What I can do is apply a filter to it and type in only things for “Los Angeles”. When I apply this filer, now I can see all my services for “Los Angeles”, and this filter will be retained when I apply it to my dashboard.

I go over here, to this dashboard icon, and I can add [this panel] to the dashboard I just created for LA Services Performance. Now I have that added; I can also go through and take a look at my server that [the LA County service] resides on to see how it’s performing so I can correlate that information. I’m going down to my actual memory usage - I think this is very useful to understand how my service is performing to ensure the actual hardware can handle the demands. So, I’ll also add that to my dashboard for LA Services Performance.

Finally, I’m going to go and filter this whole menu, and take a look for my LA county application that I want to monitor. Selecting this, what I’m looking for is to see the overall traffic that’s coming in, to see how that actual service is performing under the demand of end-users. And I’ll also add that one in to my new dashboard.

Now that I’ve gone through and added numerous items to my dashboard, let’s take a look at it. This is what I’m seeing in my dashboard. I’m able to go through and have this wonderful panel just with my filtered results for “Los Angeles”. I’m able to see the server it resides on, and I’m able to go down and see the actual visitor types coming through to my applications, all in one place. And these dashboards are also exportable to PDF for sharing.

That’s how to create a [Geocortex Analytics] dashboard. Thank you for your time.

Want to see more Geocortex Tech Tips and other great video content? Subscribe to our YouTube Channel here