ArcGIS Geodev Hackerlabs
A place to learn how to build geo apps with the ArcGIS platform.
Welcome
This repository contains short labs that step you through the process of developing applications with ArcGIS. The process described here uses ArcGIS Online and ArcGIS for Developers accounts, tools and services, and does not require the installation of desktop software for most labs. A handful have been reworked as ArcGIS DevLabs.
The process involves three steps:
- Data - Prepare data for your apps with ArcGIS Online.
- Design - Style maps and layers for your apps with the ArcGIS Online Map and Scene Viewer.
- Develop - Use maps and layers in your apps with ArcGIS templates, builders and APIs.
Getting Started
Here's how to get started:
- Sign up for a free ArcGIS Developer subscription - Your subscription allows you to download software, register apps, import data, create new services, store maps, perform spatial analysis and more. If you already have an ArcGIS Organization subscription (with at least publisher level permission) or access to ArcGIS Enterprise, that will work too.
Free public accounts and Organizational 'User' accounts are not sufficient to complete the Hackerlabs.
-
Start the labs - You can complete the labs in order or just pick and choose the ones you want to do. It will be easiest to use the data provided (Portland open data), but you feel free to substitute with your own data and augment the steps where necessary. The labs marked with an
*
are the minimum labs you need to complete to build your own custom app from ground zero. -
Share your work - This is 100% optional, but as you are going through, feel free to share your work with others in this ArcGIS Online Group!
Resources
Here are the resources you will use for the labs.
- ArcGIS for Developers - Account, Documentation, Samples, Apps, Downloads
- Esri Open Source Projects - More source code
- ArcGIS Online Maps and Apps - Map Viewer, My Content, Item Management
- ArcGIS Online Help - Documentation and Tutorials
- JS Bin - Interactive JS coding
- A simple guide for setting up a local web server (optional)
NOTE: If you are brand new to ArcGIS, we recommend that you use your developer account to sign into developers.arcgis.com to familiarize yourself with the site and then sign into ArcGIS.com to learn how to create your first map.
Labs
The labs start from ground-zero and work through the Data - Design - Develop process. In this case we use Portland open data, but feel free to use your own data to work through and build your own custom solutions. You might find it helpful to follow along with the Hackerlab Slides.
NOTE: Labs marked with an *
are the minimum required to build your own app from ground zero. The others are optional.
Let's get started!
1. Data
Creating and importing data interactively is a fast and effective way to prepare data for both prototype and production app development.
In these labs you will import, create and manage data using the ArcGIS Online and ArcGIS for Developers website and tools. You will also use the map viewer to perform data enrichment, the process of adding social demographic information to a dataset, and spatial analyses, the process of creating new data based on spatial criteria. You will also explore the feature service REST endpoints and use them in a simple web app to access and display spatial data.
ArcGIS Online and Developer Tools
- Import Data*
- Create and Edit Data
- Share Data
- View via REST
- View in a Map
- GeoEnrich Data*
- Create Buffers
- Create Walk Areas
- Extract Walkable Neighborhoods
- Filter Data
- Create Authenticated Traffic Layer
Code
2. Design
Creating web maps with great cartography is one of the most important steps to building effective mapping applications. Styling maps interactively can also be huge time-saver in app development.
In these labs you will use ArcGIS Online and the map viewer to create and style web maps. You will create new maps, explore basemaps, search for layers, use smart mapping to change symbol styles, style popups, label data, show/hide fields, filter data, and more. You will also learn how to save web maps and featurelayers and use the JSON to achieve the same rich cartographic and popup experiences in your own custom apps.
ArcGIS Online Tools
- Create a New Web Map*
- Style a Web Map*
- Style Popups*
- Smart Mapping - Proportional Styling
- Copy and save a Layer
- Vector Basemaps
- Customize Vector Basemap
- Create a new 3D Scene
Code
- Add a styled layer to an app - Bonus section
- Style a layer with JSON
- Style a layer popup
- Style a layer with a renderer
- Add a vector tiled layer
3. Develop
One of the easiest ways to build an ArcGIS map app is to start with a web map.
In these labs you will use the Configurable App Templates, the ArcGIS Web App Builder, and the APIs to build custom mapping apps. You will use the web maps with the Web AppBuilder to create an HTML5 responsive app or AppStudio to build and deploy a native app for iOS and Android. Or you can just build a custom app from the ground up with the ArcGIS JS API, Esri-Leaflet or the ArcGIS Runtime APIs.
Web Map Apps
- Create a Configurable App*
- Create a Web AppBuilder App
- Create a JS API App
- Create a Esri Leaflet App
- Create a Calcite Maps - Bootstrap App
- Create an AppStudio App
JS API
- Build a Starter Map
- Build a Starter 3D Map
- Add Feature Layer
- Add Vector Tile Layer
- Style Feature Layer
- Style Feature Layer with JSON
- Extrude data as Polygons in 3D
- Style a layer popup
- Search with a Widget
- Search with a Widget 3D
- Search with a Query Task
- Client-side Buffering
- Client-side Buffering with UI
- Working with ArcGIS Online Proxy
The above labs all use the 4.x JS API. If you would rather learn about the 3.x JS API, check here.
ArcGIS API for Python
Esri-Leaflet
- Build a Starter Map
- Add Feature Layers
- GeoEnrich address searches
- Add Geolocation
- Use Geolocation to Query
- Use Geolocation (and turf) to Query
Web AppBuilder Developer Edition
- Setup Development Environment
- Add a Custom Widget
- Add a Custom Configurable Widget
- Add a Custom Theme
- Deploy to ArcGIS Online
Want to share your work?
- Login to ArcGIS Online.
- Search for
Geodev Hackerlabs Share
>Search Groups
. - Uncheck
Only search in my account/organization
. - Join the group.
- Share your own items.
Want to help?
- Sign up for a GitHub account (if you don't already have one).
- Let us know what works for you and what doesn't in an issue
- If you're already savvy with git (or want an excuse to start learning), feel free to fork the repo and send us a pull request! There is lots on the web to help you get started, but we especially like the stuff here.
Data and Terms of Use
Please see www.civicapps.org, developer.trimet.org/gis and http://www.portlandoregon.gov/bts for the data terms of use.
Licensing
Copyright 2017 Esri
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
A copy of the license is available in the repository's LICENSE file.