Connecting Fieldwork, Crowdsourcing, and Mapping with Mapillary

Blog Post created by jkerski-esristaff Employee on May 12, 2017

An increasing number of citizen science apps and projects are becoming geo-enabled:  That means that the data within these projects can be mapped and analyzed.  Furthermore, participating in these projects often contributes to a worthy global cause.  Mapillary is one such toolset and project.  It allows anyone to create their own street level photographs, map them, and share them via web GIS technology.  The idea behind Mapillary is a simple but powerful one:  Take photos of your campus or your community or another place of interest as you walk along using the Mapillary mobile app.  These photos will be combined into a street level photo view, which you can explore along with thousands of other places from users around the world.  Mapillary is helping local governments map their city's infrastructure, call attention to land use practices, and much more.  


A year ago, I described how you might use Mapillary as a viable part of your course's field component.  On the simplest level, you can use the Mapillary app and see your resulting track and photographs in the Mapillary mapping interface online.  More recently, I extended that with a discussion of how to bring a Mapillary track into ArcGIS Online for further mapping and analysis, with the resulting map shown here.   You can display any Mapillary data on an ArcGIS Online base map, such as my recent collected track, here.  Do this by appending "&mapStyle=esri" at the end of a Mapillary URL, such as this: "https://www.mapillary.com/app/?lat=20&lng=0&z=1.5&mapStyle=esri".   


Now, I want to extend my investigation and learning still further, by including my photographs into ArcGIS Online in addition to the track I brought in earlier.  I accomplished this, with the help of the Mapillary staff, as follows:  First, I created a ClientID, by registering an app, inputting my own data for the callback URL, website, app name, and other information, via https://www.mapillary.com/app/settings/developers.  Then, I ran another call to obtain the userkey for my account. I took the USERNAME and replaced it with my own, along with the CLIENTID generated in the first call, here: https://a.mapillary.com/v3/users/?usernames=USERNAME&client_id=CLIENTID.  The userkey was called "key" in the returned GeoJSON file, which I saved with a .geojson extension to my computer.  I also noted the userkey at this point.  Next, to obtain my tracks as line string data, I ran a third API call to search all sequences belonging to the user, replacing USERKEY and CLIENTID with my own userkey and clientid:  https://a.mapillary.com/v3/sequences?client_id=CLIENTID&userkeys=USERKEY.  This returned a second GeoJSON file, which I also saved with the extension .geojson for loading it later into ArcGIS Online.  I then ran one more call to obtain the images as point data:  https://a.mapillary.com/v3/images?client_id=CLIENTID&userkeys=USERKEY.  


One of the most exciting things about this is that my over 1,200 points all are linked to photographs that I took while in the field.  These photos are taken automatically with the Mapillary app each second or so--I did not have to touch "take photo" on my phone 1,200 times.  This ensured a safer experience and also an experience where I was free to observe my surroundings instead of concentrating on the technology, which is one of the things we are always encouraging in rich and meaningful field experiences.  The resulting experience in ArcGIS Online is a seamless hike up the trail, looking to each side, forward, and backward as I so chose while I was on my trek. 


Next, in ArcGIS Online, I used "Add Data" to add my two GeoJSON files.  I then configured a popup for the point layer. With each point, the image key is inserted into the URL, and a small image is generated in the popup that corresponds to the point where I took the photo.  The idea here is to let the photo key be a variable. The resulting map is linked here  and shown below.  I then ran a viewshed analysis on my track so I could determine the areas I could see from this beautiful trail that wound up into the chaparral hills of southern California.   

Mapillary Track with photographs in ArcGIS Online


And since my track is a feature layer I could now easily bring it into the 3D Scene Viewer, shown below and shared here  so you can interact with it. 

Mapillary Track with photographs in ArcGIS Online's 3D Scene Viewer

Mapillary is a business partner with Esri, and it is exciting to explore these and other new developments.  There is even a Mapillary for ArcGIS Online app, which allows you to view, create, and edit GIS data with the aid of Mapillary photographs.  To go still further, there is also a Mapillary web app builder template widget on GitHub, here.