Well, well, well...Long time, no write. Obviously, from this post, you can surmise that GeoGirl is out adventuring and not so much in hiding. Anymore, anyway. I'm back -- not in black -- and have new tales for you, my dears.
Recently, I ventured out to the EnerGIS conference to talk on utilizing Web Applications in your GIS. Of course, using applications aren't exactly a new thing, but as is the world in every aspect (for instance -- marriage, cleaning, showering, etc.), everyone does their own thing at their own pace. This wasn't a very technical talk. Although it was done primarily for an audience whose careers revolve around various Energy sectors, the takeaways are non-specific to industry. They deal primarily with how to approach the functionality of your apps, as opposed to what is actually in them. Here's to hoping this can do someone somewhere some good, even if it's just to encourage them to make some killer maps...or pay us to. *insert obligatory wink here*
So what is it we're talking about today? Oh, wait, let me check my notes...
FIVE COMMANDMENTS OF WEB APPLICATION FUNCTIONALITY
Ahh, that's right! Before diving into what aspects should be considered when using Web Applications, it's important to note that I am referring to the interface in which a user gains access to a Web Map, not the map itself. This is not to negate the importance of the map. Maps, especially those that are Esri-based, tend to offer the same functionality, mirroring the content in which you would typically notice in Desktop. The application, on the other hand, is how you are able to interact with it...much like how ArcMap is Esri's primetime Desktop application.
Get it? Got it? Good.
In an effort to keep this post as brief as an Ayn Rand novel, let's consider that the primary aspects you should be paying attention to all fall into four categories:
INCLUDE DATA (NOT JUST YOURS)
Is your data kickass? Want to up that level of kickassery? Employ it along outside resources.
I know, I know. It's not always ideal to include your data in conjunction with third-party resources. However, it's also not always the most efficient use of time and resources to source that material yourself...unless, of course, you have interns. Then, it's fair game.
These outside resources include everything from basemaps to weather layers...Information that would add extra umph to your already fantastic chops. For example, Web Mapping Services can be exposed from government agencies (think NOAA or Environment Canada). No matter the content though, the trick is making it easily accessible AND ensuring it is from a trusted source.
There aren't many things worse than having so much power at your fingertips...and not being able to do a thing with it. World hunger is probably a close second, but not by much. Giving your clients and peers the option to access maps online should spell a good time in this digital world of ours. However, humans are greedy. Give them an inch, and you know how that story goes. Instead of just allowing them to access online maps, they'll want a way to make it their own. To do more with it than the average bear.
First, you want to ensure basic map operations tools are available. I know you know that. It's a fairly obvious point. Sometimes it may be too obvious though. One great thing about using Desktop is that it gives you access to basic functions, like zoom or pan. Why not give your user the same ease of access online?
Second, consider including more advanced tools. We covered fire, now how about some wheels? Consider giving the end-user tools they might not have realized they want -- like a way to export datasets based on the visible layers only. Interactive tools are also fun, such as sliding scale bars to adjust the transparency of layers. In addition to those glorious things, markup tools make for a nice addition. It's like professional graffiti. This will give users a way to note areas that are of interest, assets that need further inspection, data that you have gotten incorrect and will now spend the next two weeks correcting. Features like this are for the overall good.
Finally, allow them to save their settings. Who wants to go through the effort of recreating their changes when they could have just saved their customization the first time? Allowing a way for clients to log-in and save their personalized map is great. Giving them a way to do that AND share it with others in a group? Even better.
ANALYSIS, NOT JUST FOR THE OVER-THINKER
Although Web Maps are handy for being able to see data, it really steps up the game when you can analyze that information as well...within the Application, of course. These functions can be simple, advanced, or both if you're an overachiever.
Mix and match.
The simpler side of your analytical prowess may include Search options -- perhaps based on keywords or radius -- while the more advanced options may be embedding actual geoprocessing tools inside the application itself. Virtually any geoprocessing operation, like Kriging, that can be published to ArcGIS for Server can be consumed and exposed by Map Control.
Features like this allows clients powerful geostatistical analysis capabilities that, previously, would have required access to Desktop in order to perform. More importantly, they would have had to use Desktop...which, lovingly, can be a challenge in itself. Instead, this way, they can process datasets in a much more condensed workflow. Less steps and half the headache.
REPORT, REPORT, REPORT
Although some clients might be satisfied in using simple tools, like Export to PDF, as a way to generate reports, some organizations might be interested in more technical and visually appealing products. Who wants to read numbers and names all day, especially when they're in Attribute Table format? Not this girl!
Offering features like interactive graphs and charts lets the user correlate relevant parameters by clicking on the graph and seeing which features are highlighted. Giving them the option to export and share these also gives them some major street cred...even if it's just in their office. Your Web Application can now come with a complementary World's Best Report Generator mug.
CONTENT MANAGEMENT, THE NEW MICROMANAGING
If you didn't listen to anything that came before this section, listen to this -- Keep the illusion of control when accessing data. In addition to being greedy, humans also crave control. Users want to be able to control what they see (hence points 1 - 4), but developers also want to control what users can do. This could easily be a lose-lose situation where no one ends up satisfied. Instead, let's turn this into a win-win. Trophies for all!
With all of the bells and whistles that can potentially come with utilizing apps, there isn't much value to them unless you can control access to their content in some way. If you were paying attention earlier, you know that the ability to save settings is a big 'ole plus. Likewise, having the option to share alternate versions of the same Map Service within a group is also not a terrible idea. (I'm full of great ideas, why would you even question that?)
Three ways in which you can customize your sharing culture are:
Allow clients to create groups. The person who establishes the group, in turn, can add or remove maps or users...hopefully without damaging the feelings of coworkers in the process. They can also delete the group altogether.
Choose "creation" over "alteration". Rather than altering an existing map, new maps can be created from a number of services currently published and publicly exposed by the site administrator. These admins have access to control the written and graphic content, of course, as to not let anarchy completely rule. They can also define and deploy as many Map Servers as they wish.
Offer variations of a single Map Service. The control management system allows admins to publish different map behaviors based on the same Map Service. For instance, one map may have the Identify task return labels in Spanish while another returns English. Regardless of the behavior, the underlying service remains the same.
With all of that being said, it is best to think about your end-user and what he or she wants from this experience. An application that is easy to navigate, intuitively understood, and offers sound data is a wonderful start. (No really, get started on that now!) An application that offers customization and analytical superpowers is just icing on the cake.