Review of Getting to Know Web GIS

By Pinde Fu.

Esri Press, 2015.

378 pages, 464 color figures, 3 appendices, online resources. $84.99, paperback.

ISBN: 978-1-58948-384-2

Reviewed by: Daniel G. Cole, Smithsonian Institution

Getting to Know Web GIS

The author describes Getting to Know Web GIS as

a workbook, with detailed, step-by-step exercises, that teaches readers how to share resources online and build web GIS applications easily and quickly. It is a practical manual for classroom lab work and on-the-job training for GIS students, instructors, GIS analysts, managers, web developers, and a broad range of GIS professionals. (x)

Unlike books that focus on individual products, this book teaches GIS technologies as a holistic platform, from the server side to the browser, mobile, and desktop client side…[and it] addresses the pros and cons of the available development options and helps you to make the best choices based on your requirements and resources. (ix)

These statements are quite ambitious, in that they are applicable to anyone dealing with GIS; frankly, though, the holistic claim is aimed at Esri customers.

The book includes a preface, 10 chapters, and three appendices comprising credits for images, data, and server data. Each chapter ends with questions and answers, assignments, and online Esri resources. Data used in the tutorials are downloadable from downloads2.esri.com/ESRIPress/bookResources/WebGIS/WebGIS/setup.exe. Good cross-referencing exists between the chapters.

Chapter 1 involves the building of a web app with ArcGIS Online (AGO), which is fine, but at this point, the reader cannot proceed without the updated book supplement, which is a 29-page PDF document. In other words, this book was outdated shortly after it was published. The only chapters that had no updates were chapters 8 and 10.

The second chapter provides more information on AGO layers, maps and apps. Fu introduces best practices of web GIS app design, including using available base maps from AGO. He also shows adding layers from eight different formats, and identifies the tools provided by AGO. He discusses how the user design should be fast, with the use of caching, database tuning, partitioning and load balancing; easy, with an intuitive GUI and not too many buttons and layers; and fun, with the integration of photos, charts, videos and animation (41–42). The tutorial for this chapter provides a CSV file. Because the book advocates the use of Excel “to create and edit your CSV data” (9), at this point, I suggest that he reference the recent article by Buckley and Rojas in ArcUser magazine (48–49), “Always and Never When Formatting Excel Tables.” As someone who has had to repeatedly deal with GIS users who improperly format their Excel spreadsheets, the caveats in that paper should be required reading.

Chapter 3 discusses geospatial web services and time animation. It outlines the differences between dynamic service layers and feature layers, along with the choice of four Esri GIS products: ArcGIS for Server, ArcGIS for Server in the Cloud, ArcGIS Online for Organizations, and Portal for ArcGIS. Further, the author provides a workflow to publish map services so that one can prepare, edit, share, and verify the spatial data. The tutorial here is the first of a number of exercises involving the use of ArcGIS for Server. In this chapter, the student is taught how to build a website of the combined natural disasters of earthquakes and hurricanes, complete with a time slider.

The fourth chapter gives instructions on how to use and build cached map services along with comparison web apps. Fu notes the benefits of cached map services and points out their differences with tiled map services including vector tiling and raster pyramids. He identifies the Web Mercator projection as the coordinate system to use, not because it is the best, but because that is what Google, Microsoft and Esri are using. The author then lays out four scenarios for data storage and how to register a data store; this is followed by a discussion on planning a map cache, encompassing the choice of the right tiling scheme, designing the map for each planned viewable scale, anticipating cache creation time, and planning to deploy using a compact storage format. Finally, he compares several ArcGIS Online app templates: spyglass, swipe, and side-by-side. The exercise involves the creation of a GIS web app comparing the spatial patterns of California’s topography with its forests.

Chapter 5 covers feature services and volunteered geographic information (VGI). Fu wisely points out that “feature services support both read and write functionality” (159), which is useful for collecting VGI and allowing web users and clients to edit data and workflows while preserving data integrity through the limiting of choices and preventing invalid data entries. Lastly, Fu discusses publishing feature services with ArcGIS for Server and ArcGIS Online for Organizations, along with editor tracking so that more accountability and quality control can be maintained. This chapter’s tutorial consists of creating an ArcGIS Online for Organizations publisher account, publishing a hosted feature service, defining feature templates, creating a web map and defining editable fields, and, lastly creating a web app for VGI collection.

Chapter 6 deals with the Web AppBuilder for ArcGIS, which permits building web apps without programming, a feature that should make many potential users happy. The key features of this tool include: it creates web apps with HTML and JavaScript without the necessity of plug-ins; the web apps are adaptive to all screen sizes; it supports 2D and 3D; numerous out-of-the-box widgets are available; it works with both ArcGIS Online and Portal for ArcGIS; and the tool provides a framework to develop extra widgets, etc. The core widgets encompass 20 different tools, enabling the user to have access to plenty of functionality. The exercise comprises the creation of a basic web app involving the natural disasters content used in Chapter 3, building additional widgets into the website, and deploying the application.

The seventh chapter addresses spatial analytics online and geoprocessing (GP) services. GP services are equated to desktop geoprocessing: “think of a GP service as a toolbox and its tasks as tools within that toolbox” (226). Fu lists the capabilities of GP services, including: summarize data, find locations, data enrichment, analyze patterns, use proximity, and manage data. Once the GP services are published, any of these tools can be shared along with any applicable models, from ModelBuilder, or scripts, from Python or ArcPy. The accompanying exercise helpfully involves designing a GP model in ArcMap, running the model, publishing the results as a GP service, exploring the GP service in the services Directory, and using the GP service in Web AppBuilder for ArcGIS.

Chapter 8 provides an introduction to using the ArcGIS API for JavaScript so that apps can be customized. The author points out that since JavaScript runs on the browser side, it is more popular (and probably better) than Adobe Flash and Microsoft Silverlight. But he wisely adds that you need to know HTML for packaging and Cascading Style Sheets (CSS) to style content. Regardless, Fu notes that a JavaScript API interacts with GIS servers as well as provides GIS functions; and it presents responses from servers to end users and interacts with them. He also states that the ArcGIS API for JavaScript provides many classes and lists the most common ones with their accompanying properties, methods and events. Two good suggestions that he makes include: playing with the samples in the ArcGIS API for JavaScript sandbox, and using IntelliSense to spot typos and other mistakes. The tutorial for this chapter involves building an app through the adaptation of a given sample, deploying the app to your web server, debugging the app, and adding dijits to the web app.

Chapter 9 involves learning about mobile GIS as used on smartphones and tablets. He identifies three development strategies: browser-based, which should reach all mobile platforms; native-based, which has apps that must be downloaded to the user’s device; and hybrid-based, which is a combination of these two. Fu then discusses the advantages and disadvantages of each. Browser-based apps work for multiple platforms, and are quicker and cheaper to develop, but the user experience is not as good. Native-based apps have better performance but are more expensive and have low portability. The exercises here start with the creation of a web map for use in the following sections. Then the reader is taught how to collect points, lines, and polygons using Collector for ArcGIS, followed by a quick sampling of the JavaScript API, and finishing with the installation and running of the ArcGIS for Android plug-in.

The last chapter is the shortest in the book, although it could be longer. In just four pages, Fu quickly outlines the creation and publishing of 3D models to ArcGIS Online, plus how to use CityEngine web viewer.

Overall, Fu has put together a very good book on learning about web GIS in the Esri universe. That said, in this reviewer’s opinion, this book should not be sold as a printed work; rather, it should be sold by Esri Press as an e-book for two reasons. First, its many online sources would be more easily accessible from an e-book; and second, since it has so many corrections and changes (see downloads2.esri.com/ESRIPress/bookResources/WebGIS/WebGIS/Supplement_final.pdf), registered purchasers of the work could download free updates to the book. I was not pleased with how much I needed to mark up the book to prevent frustration with the out-of-date instructions.