The Future of JavaScript in GIS is bright
/A few weeks ago, I had the pleasure of attending the JS.Geo conference. A one-day conference that "brings together anyone interested in visualization, analysis, or cartography for a day of talks and demos of mappy sorts of things built with JavaScript (mostly).” I saw demos and talks about a lot of cool innovations and projects involving maps and JavaScript. I'm going to expand a bit more about the two biggest trends I saw below, but additionally, some other trends I noticed:
- 3D maps are hot -- both Mapzen's Tangram and Cesium were demoed showing impressive 3D capabilities in the browser
- Node.js and server-side JavaScript has seen astronomical growth in the past few years and geospatial software is no exception to that
- Open source software (OSS) and open data (OD) are huge influencers on the direction of this industry, with up-and-coming companies like Mapbox and Mapzen building entire businesses and platforms on top of OSS and OD, to industry heavyweights like Esri who are increasingly getting involved with OSS and OD.
Vector Tiles
If one thing became clear to me after JS.Geo, it's that vector tiles are the future of delivering web map data. A decade ago, Google changed web maps by creating the web's first "slippy maps" which used map tile images and AJAX to deliver a much better user experience. Vector tiles are the next evolution of web maps. Rather than a server sending you a pre-rendered image tile, a vector tile contains the vector geodata for a part of the earth. Vector tiles contain what to map, instead of something already mapped, allowing for interactive cartography that users can personalize for their particular use case, preferences, or even the device type they're using.
The vector tile ecosystem is still maturing and is dynamic, but innovation here is happening rapidly. The community has quickly moved to support the open specification that Mapbox has developed, including Esri, who are using not only their community specification for vector tiles, but in its JS API 4.0 will leverage the mapbox-gl-js library for vector tiles developed by Mapbox.
Client-side spatial analysis
Beyond vector tiles, another innovation really making some strides in that past two or so years is client-side spatial analysis and statistics, particular with Turf. Turf has many of the GIS functions you'd expect of a spatial analysis tool – buffer, intersect, merge, and more. It also includes basic statistical tools like median, deviation, and variance.
Having these tools available client-side can create a better user experience. You're able to perform these tasks right in the browser without having to make requests to geoprocessing services or other back-end services. Not having to make external requests is particularly beneficial with mobile application where network connections are both slower and less reliable.
JavaScript is a technology map makers and companies would do well to pay close attention to. The ecosystem is dynamic and is still maturing, but its influence on how we make and interact with maps will be huge.