Editor's Note: The following is a summary of notes from GISinc's developers at the Esri Developer Summit in Palm Springs. Be sure to stop by tomorrow for 2nd-day notes from the event.
The project that I primarily work on, the Navy Shore Geospatial Energy Module, helps to visualize the energy consumption across Navy facilities across the world. I'm already thinking about how 3D visualization may help the users see trends, outliers, and other metrics in their data. A working prototype may soon be in order.
The Esri 2016 Developer Summit started off with many exciting announcements and demonstrations. One of the first was the new vector tiles functionality in ArcGIS Pro 1.2. This feature allows users to create and publish basemaps in vector format, which allows for higher resolution display and a much richer user experience at varying zoom levels, while reducing the required storage and download size. The map publisher can specify at what zoom level different features should appear- for example, secondary roads. An interesting side effect is that when a user rotates a map, the labels stay upright, because the vector tile basemaps aren’t image-based.
Another clear highlight was the focus on analytics. One in particular was the new Insights for ArcGIS. This tool makes it easy to analyze and view large amounts of data over time. The example showed money laundering, and had over one billion financial transactions over time, and was processed against all 74,000 US zip codes to show users transferring varying amounts of money across the country in multiple transactions. One of the really interesting things about this demo was that during the analysis, while the user was choosing different attributes, the software was recording the steps in the background. This allows the analyst to “replay” the scenario, save it for later, share with coworkers or colleagues to get their input.
Another interesting demo was real-time GIS, that showed data in a web browser updating in real time. Because the data was refreshing on the fly, this allowed for a dynamic pattern map that doesn’t go out of date.
The over-arching theme of all of the presentations was how easy it is to share the maps, data, and analysis across the ArcGIS Platform, which will benefit both content creators and consumers.
Esri apps want you work smarter, not harder!
During today’s Esri Apps and the Road Ahead presentation there were three applications discussed that you should know about. The applications are easy to use and powerful solutions. However, it’s not just the functions or use cases of the apps that make them cool, but more so how they work together.
For starters, there is Collector for ArcGIS. You may have heard of it, but if not, check it out! It’s by far the best way to enable field data collectors to collect GIS data. Recent updates allow for advanced offline editing to optimize downloading and syncing edits on devices, and also various bug fixes. Looking ahead, LOCATION, LOCATION, LOCATION is the focus of the app team. Improving the spatial location of data collecting without needed additional equipment is in the works, and will be a welcomed improvement.
In conjunction with Collector for ArcGIS, Esri is working on linking Navigator for ArcGIS so field crews have the custom navigation capabilities while collecting data in the field. Think about how great it would be to have a custom navigation service, one that includes service, alleys and dirt access roads to assets that other navigation systems simply don’t account for? This application is only in the Apple App Store, but Esri plans to roll out the beta version for Android devices.
So this sounds good, but do you see what’s missing? How about a management piece to oversee the work necessary, and create worklists for the field crews? Enter, Workforce for ArcGIS. Workforce has two main components, a management piece to assign work to field workers, and a mobile app for the field works to report back to the office. Essentially it is a light work order management system. The best part is, it works with Collector and Navigator.
Let’s look at a workflow and include some of the future capabilities of these apps:
- Manager creates list of work and assigns it to various field workers.
- Field workers are notified work is assigned to them, and view work orders using Workforce for ArcGIS.
- Field workers load locations in Navigator for ArcGIS to create an optimized route to visit all of their work orders in the most efficient path.
- Field workers arrive at locations, and Collector for ArcGIS automatically opens to obtain necessary data and information based on work order.
- Once data is collected, the work order status is updated, and the Manager in the office can see all work orders be processed from all field workers and can rest at ease knowing the work is being done effectively and efficiently.
Working smarter, not harder…
Today at the Dev Summit I attended the session entitled “Vector Tiles in the ArcGIS Platform” and noted a few key details. Using vector tiles allows the user to save time and storage space compared to caching raster data sets. The old saying “Raster is faster, but vector is corrector” is not the case anymore. You can cache vector tiles of the whole world wrapped up in less than thirteen gigabytes and only takes eight hours to process on a desktop. Overall, you are creating less tiles because of the overzooming functionality. Overzooming is the concept that you do not need fine detail for areas like the ocean. The accuracy is not needed.
Caching again and again is not necessary when you can just change the styles on the same tile set. Examples of the different styles could be a night time map or an elevation map. Esri pre built tiled vector layers that are ready to be used and are customizable. Make a copy of the layer styling information and then style as needed.
The geoprocessing tool in ArcGIS Pro that creates the vector tiles is called “Create Vector Tile Package”. There is an easy to use editor that is geared towards editing the vector tiles called “ArcGIS Vector Tile Style Editor”. The user can preview the tiled vector map on the right hand side of the webpage, click on an item you would like to change and edit the JSON on the left. This layout of the editor is very similar to the AGO Assistant. The tiles update as you update the code.
There were a lot of exciting things presented today at the Esri 11th Annual Developer Summit and so many interesting sessions that I found it difficult to decide which to attend. The plenary session did an excellent job of presenting all the new things that are on the horizon in Esri’s Road Ahead. Below are a few of my favorites:
The Insights App is getting some big enhancements including the ability to quickly aggregate data, more charts, graphs and mapping options, and the ability to record all the analysis steps to share.
It was officially announced that Esri will be sharing the source code for their Survey123 application. The application was built using the AppStudio for ArcGIS which allows you to create native apps for iOS, Android, Windows, Linux and Mac OS X using a single, simple code base.
All of which has this developer looking forward to the near future!
Today was the start of the Developer's Summit and Esri started us off with a great Plenary full of new innovations, products, SDKs and APIs. One of the more interesting highlights was the new Quartz runtime design. The idea of a common core engine and base logic that helps align all the runtimes in the platform is definitely an impressive undertaking and I think very much worthwhile.
One of the cooler innovations I saw that took advantage of this common core was a session I attended today based on using the ArcGIS runtime with the Windows 10 IoT Core. In the session we saw how the Windows IoT Core installs on devices such as the Raspberry Pi and the Qualcomm DragonBoard. Using Visual Studios and the Quartz .NET runtime, developers will soon be able to bring ArcGIS to embedded platforms. This mashup may not be certified, but it definitely does work, as we were able to see. While the DragonBoard had some seemingly firmware related issues, the Raspberry Pi performed admirably, running the code compiled in .NET and deployed directly to the device to register GPS location updates. The demo included some basic circuitry that allowed, at the push of a button, a registering of mock locations – no GPS signal was available at the time – to a geodatabase that had been created directly on the device. And when the device detected that a network connection had been established, it automatically synced those events to the server through a feature service. While this technology is at the bleeding edge, I’m excited about how soon this will be ready for us developers to start working with and extending further.
Additionally, Esri has provided a couple of handy tools for updating styles. The first is a style editor (http://Esri.github.io/arcgis-vectortile-style-editor) that can be used to update and preview style changes on the fly in a nice web interface. The second is another web UI that can be used to updates the styles of existing Esri basemaps. Altogether, the new vector tile layers are sure to increase the number of beautiful maps popping up on the web.
Exciting property changes in ArcGIS JS API 4.0
There is a lot to be excited about with the new ArcGIS JS API 4.0 coming out in the near future! Having used the 3.x APIs practically everyday I was eager to find what improvements were being made. While there are a number of great changes in the pipeline one that I am most excited about from a day-to-day use perspective are the changes they are making around properties in their classes.
The now workflow for changing and retrieving property values will be made simpler by removing the get and set methods that surround most properties in the 3.x API. Now Esri has all of their property variables extend a new class in the JS API called the Accessor. This does a few things really cool things. First it allows these properties to be bound directly in views so if you have a checkbox controlling the visibility of a layer you can now bind the checked property to toggle the layer visibility directly instead of having to write a function to handle the event and change the state of the visibility property via is get and set methods. Secondly as a benefit of properties being extended from the Accessor class we cannot set event listeners on them to fire an event handler when the property changes using the .watch method on the property. This allows developers to set event handlers in a much simpler way when properties are modified. An example of this is if you have code to handle an extent change. The previous workflow was to set the event listener on the map object using the at times cumbersome syntax and having to look up the exact event name to put into the handler so it captures the event you are looking for. Now it is as easy as invoking.watch on map.extent! To some these may seem like relatively small changes compared to 3D or how they have unified all of the class constructors into single constructors or how you can avoid using constructors for things like passing in colors to symbols and just passing an array of values, but I am excited to integrate this new way of working with properties into my workflow!