© by the author(s). This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0.

Review of Getting to Know Web GIS, Third Edition

By Pinde Fu

Esri Press, 2018

486 pages; $94.99, paperback.

ISBN: 978-1-58948-521-1

Review by: Melo King, Smallmelo GIS, LLC

Getting to Know Web GIS, Third Edition

Back in 2012, I found the first edition of Getting to Know Web GIS quite valuable. It served as a resource for the Master’s thesis I was then writing at the University of Redlands, which focused on building map-based web applications. It was also used as the text in the web GIS class I was taking at the time. Since then, I have continued to build GIS-based web applications and have witnessed firsthand the many changes in both web development and GIS during that time, so I was curious to see how Getting to Know Web GIS might have evolved, too.

The book’s layout is generally similar to that of the first edition—it still has ten chapters, but only two appendices instead of three, and there has been some rearrangement of material. The text as a whole has kept up with the times and software versions, but the technology central to the material in Chapters Five and Six has changed significantly, resulting in major updates. Every chapter still has an introduction, a list of learning objectives (including a graphic showing how that chapter’s topics fit into the big picture), a discussion of theory, a step-by-step tutorial, a Q&A section, an independent work assignment, and a list of resources. The tutorials are a huge component of the book, and take up many more pages than do the theoretical parts. This means that if you are only interested in the theory, Getting to Know Web GIS will end up being a much shorter read than you might at first have expected.

Chapter One introduces the reader to web GIS, and is similar across all editions. High-level terminology is explained, as are the advantages of web GIS applications over traditional desktop GIS. The chapter tutorial walks the reader through the process of building an Esri ArcGIS Online Story Map with photos, using out-of-the-box (OOTB) functionality. Showing the user how to build a web app straightaway in the first chapter is a great way to help allay the feelings of intimidation often associated with learning app development, and was a clever choice on the author’s part. The reader walks away from the first chapter with a feeling of accomplishment—and they didn’t even have to write any code.

The second Chapter, “Hosted feature layers and Esri Story Maps,” is the only chapter that focuses on cartography and the map/app user experience—specifically, on “Smart Mapping” in ArcGIS Online (AGOL) and the Arcade application programming language now available across the ArcGIS ecosystem. “Smart Mapping” functionality offers web map users data-driven visualization styling suggestions for options like data class breaks and symbolization schemes. Arcade, on the other hand, is a JavaScript-like expression language for visualization and labeling. Its strength lies in its portability across the entire Esri ArcGIS platform and in its security—purportedly, an Arcade expression cannot be hacked, or injected with executable code outside of its intended context. This chapter also introduces web services—the way data residing on a server are delivered to a web map application. These service streams are ingested by the web map or app as data layers. The tools in Chapter Two could end up being valuable across a broad range of use cases, especially because, when building web map apps, the creator has to think about good maps and good apps—good cartographic and good web user experiences.

Chapter Three deals exclusively with the Web AppBuilder for ArcGIS—a WYSIWYG (What You See is What You Get) “drag and drop” tool for building map-based web applications within the Esri ecosystem. The Web AppBuilder automatically handles a great many of the tedious programming tasks—such as taking care of the styling variants required to accommodate the wide variety of hardware screen sizes, aspect ratios, and resolutions upon which a web app will be expected to work. Thus, the Web AppBuilder allows the web app builder to focus on the map content and app delivery method, instead of the nitty-gritty stuff. As someone who has been building web apps for a long time, this tool seems heaven-sent.

The fourth Chapter presents the reader with a range of uses for web GIS on mobile platforms—including Volunteered Geographic Information (VGI), Virtual Reality (VR), and Augmented Reality (AR)—along with the technologies Esri has developed to help their customers build for mobile platforms. There is a brief discussion on Esri’s editable feature layers and their new “feature layer views”—which allow the service administrator to permit or deny different types of data access to users according to predefined “roles.” The chapter then goes on to describe AppStudio. There are two different architectural approaches to building mobile apps: “native” (apps that run only on a particular mobile platform, such as Android, iOS, or Windows) and “hybrid” (cross-platform apps targeted to run on any of a variety of platforms). Esri’s AppStudio allows the user to develop a single source of code that can be exported for multiple mobile platforms.

Chapter Five, “Tile layers, map image layers, and on-premises Web GIS,” provides a discussion of the different data-layer type and server architecture options. Any web GIS app requires web-based GIS data, and to feed data to your app, you need a GIS server. Getting to Know Web GIS includes a very useful table comparing the relative capabilities of cloud (for example, ArcGIS Online) and on-premises enterprise (particularly, ArcGIS Enterprise) GIS server infrastructures. At this point in the chapter, I think that the reader could have been given a little more background information about the server/client relationship, but I also understand that the author is leaving the more complicated details until later in the book. Instead, he turns to a discussion of the different types of data layers—such as tile and map image layers—that can be accessed from a GIS web server for display in a web map. An especially useful table shows the conceptual relationships between the various proprietary Esri layer types and their corresponding open-source equivalents.

“Spatial temporal data and real-time GIS” is the title of Chapter Six, which hinges on both the four types of time found in GIS data—dynamic, discrete, stationary, and change—and on how GIS fits into the “Internet of Things.” There is a big emphasis on Esri’s GeoEvent Server, an ArcGIS Enterprise extension that ingests real-time data streams from sensors, and outputs a map data stream service that can be added as a layer in a web map. It is unfortunate that the discussion of licensing is saved for the chapter’s Q&A section—it is only there that we learn that the GeoEvent Server requires not only a high-end ArcGIS Enterprise license, but an additional, and expensive, GeoEvent Server Extension license as well. Spendy!

Chapter Seven is focused on 3D GIS, and includes Indoor GIS as well as AR and VR—extending the earlier discussion in Chapter Four. The discussion of 3D data is particularly timely, given the growth in the use of drones to capture such information. In the Esri ecosystem, web maps are used for displaying two-dimensional data, while three-dimensional data are displayed in web scenes. The similarities and differences between a map and a scene, along with the different types of layers each can contain, is explained in useful detail.

Chapter Eight covers “Spatial analysis and geoprocessing.” and is yet another topic thoroughly updated in this new edition. Geoprocessing—the ability to automate spatial analysis—is an important component of working with spatial data, and this chapter describes both the standard geoprocessing tools available in AGOL and how custom geoprocessing tools can be built in ArcMap or ArcGIS Pro and published to ArcGIS Enterprise as a geoprocessing service. Just like feature services can be consumed by a web map, geoprocessing services can be consumed by web applications, allowing users to perform analysis in the app. The chapter ends with a discussion of how geoprocessing services can be accessed by custom apps built with any of the various Esri Software Development Kits (SDKs) and Application Programming Interfaces (APIs). The majority of the Chapter Eight tutorials require an ArcGIS Enterprise license, which is slightly disappointing. It is also unfortunate that Esri doesn’t allow custom geoprocessing services to be published by AGOL—that is to say, non-Enterprise-level license—customers.

Chapter Nine introduces a topic new in the third edition of Getting to Know Web GIS: image services and raster analysis on the web. The chapter starts with a refresher on what raster data are and how raster datasets can be organized into Arc mosaics and published as an image service through ArcGIS Enterprise. Image services provide an interface to the pixel values in the underlying raster data in a similar way that feature services provide an interface to vector data. The author describes the many powerful standard image services available to AGOL customers. He provides an example showing how an image service containing a raster dataset of sea surface temperature can be utilized to query and display the value of any given pixel. Another topic of note is the server-side on-the-fly processing that can be done with image services. An example of this includes the on-the-fly generation of aspect, slope, or hillshade rasters from an elevation image service. Custom image services can only be published by ArcGIS Enterprise customers with an additional Image Server license, and while AGOL customers can access Esri Living Atlas image services, ingesting and querying these commercial services consumes purchasable credits. This is another important financial detail that Mr. Fu glossed over or left out.

Chapter Ten is focused on building custom web apps with a map component. Web applications are dependent on an orchestration of database, back-end server, and front-end client components, and Fu takes the time to explain how this orchestration is effected. He does a really good job of providing basic building blocks, as well as touching on important topics for learning both how to program in any language and how to use the Esri ArcGIS for JavaScript API. Different front-end programming languages can be used to address different roles in web application development, and the author makes their different strengths clear. In describing the ArcGIS for JavaScript API, the author particularly discusses classes, methods, and properties, all of which are important programming concepts. There are informative discussions of both debugging and of Esri’s Sandbox—both are valuable troubleshooting tools. The online Sandbox (developers.arcgis.com/javascript/latest/sample-code/sandbox/index.html?sample=get-started-mapview) is both a JavaScript map app testing environment and a great source for sample code.

FINAL THOUGHTS

Getting to Know Web GIS, Third Edition covers enough detail on a wide range of web GIS topics to pique the interest and hold the attention of anyone wanting to make maps in an online environment.

I think that this is an ideal book for use in a GIS classroom where the curriculum is focused on Esri technology. With teaching aids—PowerPoint slides and sample data—available on the web, instructors are also given a leg up putting together content for any new web GIS class.

This book is also an appropriate resource for a GIS analyst in an Esri shop who has been asked to build GIS-based web apps, but has little or no previous background in web development. In my experience, there are many shops that find that they have to move quickly to meet new challenges in web and mobile mapping, and must do so without the luxury of additional hires. Getting to Know Web GIS, Third Edition should help any experienced mapping hand get a grasp on the new tools and environment.