SlideShare a Scribd company logo
Exploring Halifax
Attractions using the
Runtime SDK
for Android
Lindsay LeFresne and Sarah Micheau
 Create an app of the Halifax region using an
Esri basemap
 Use feature layers to display data which can
be turned on/off
 Ability to query data
 Find optimal routing between locations
Initial Project Plan
Image from: https://weather.gc.ca/forecast/canada/index_e.html?id=NS
Software
2.1
Online & Desktop 10.3
Integrated Development Environment (IDE)
Getting Started
 Choose an Android Version and API level
 Create an emulator
 Basics of Android Studio
 Esri tutorials from ArcGIS for Developers
Android Platform Versions
Platform versions are a trade off between the
percentage of users’ the app aims to target
and available features.
Creating an Emulator
 Option to connect an Android device or use a virtual emulator
 We created several emulators in Android Studio which are shown in the
image below
Basics of Android Studio
 Build Automation
 Gradle has the ability to access
other host repositories including
Maven
 Android studio is the only IDE that
supports the Gradle build system
Tutorial 1: Add a map to your app
 Completed the ‘Add a map to your app’ tutorial on the Esri developers website
 Defined MapView
 Problems:
Tutorial 2: Use ArcGIS basemaps (1/2)
 In the onCreate method, the mapView was retrieved from
the XML where we defined it earlier
 onPause and onResume methods were added
 In menu_main.xml 4 different basemaps were defined as a
menu item
 Several basemap variables were defined
 In the onCreateOptionsMenu method, menu.getItem
was used to retrieve the basemap menu items
 onOptionsItemSelected uses the menu item ID to
determine the action to be taken from the switch
statement
Tutorial 2: Use ArcGIS basemaps (2/2)
Tutorial 3: Access feature data in the cloud
 A Feature layer URL was added to the string.xml, this accesses the layer from
the cloud
 Layer variables were defined in main code
 Code was added to the onCreate method to create the feature layer graphic
upon start up
Tutorial 4: Add geocoding to your app
 Geocoding variables were added
 New graphics layer was added in the onCreate method
 Code was added to set a listener to ensure that the map view was
initialized and ready to use upon app startup.
 The next step was to allow user to enter an address this was done by
adding a search button to the top bar in the app.
 LocatorAsyncTask method added to execute the geocoding and zoom to
the specified location.
Creating the Layers Used
 Trails
 Provided by Halifax Open Data (http://www.halifax.ca/opendata/) and imported into ArcGIS
Online
 Breweries
 Geocoded using ArcGIS Online
 Shopping Centres
 Main large shopping centres were chosen
 Geocoded using ArcGIS Online
 Parks
 Provincial parks within Halifax County were located from http://parks.novascotia.ca/
 Geocoded using ArcGIS Online
 Hospitals
 Geocoded using ArcGIS Online
All layers were symbolized within ArcGIS Online, and made available to the public
Geocoding in ArcGIS Online
 CSV files were created using
Addresses of the locations used.
 They were then imported into ArcGIS
Online which automatically geocoded
the locations.
Trails Layer
 Layer was downloaded from Halifax Open
Data website
(http://www.halifax.ca/opendata/) as a
shapefile and imported into ArcGIS for
Desktop.
 Problem: Projection
Web Mercator
 The layer is then shared as a feature service
and brought into ArcGIS Online.
 All feature layers were added in the
string.xml file using the feature service URL’s
Creating Image Buttons
 Image Buttons were created to allow user to
query or select feature layers
 Five image buttons were used: App Info,
Brewery, Biking (Trails), Parks and Shopping
Centres.
 A drawable xml was created for each button
that defined the shape and color of the button.
 The ImageButtons were created under the
layout folder with the drawable and mipmap
photos assigned as part of their attributes
 The onClick attribute was used to link the
button to a method within the code that
defined the button’s action.
Using the App Info Button
 When information button is clicked the method appInfo is called that displays a
pop up window explaining the app to the user.
Using the Brewery Button
 When the brewery button is clicked the onBreweryClick method is called
 This method uses a boolean to track whether the layer is turned on or off.
 For example if the layer is turned on, pressing the button will turn the layer off
and vice versa.
 Brewery layer was added as a feature layer using the feature layer URL
Using the Trail (Biking) Button
 The trail layer is defined in the onCreate method and is displayed upon start up.
 When the user clicks on the biking button it calls the showPopup method.
 When the user makes their selection it calls the onMenuItemClick method.
 Resulting trails are highlighted in blue using a SimpeLineSymbol
Using the Park button
 The park layer is defined in the onCreate method and is displayed upon
start up
 This button works similarly to the biking button, where it queries the
layers attributes allowing the user to select parks where there is
swimming permitted.
 The button calls the showPopupPark method to inflate the park menu
 Parks are identified by an overlaying SimpleMarkerSymbol
Using the Shopping Button
 When the shopping button is clicked the onShoppingClick method is called. The
button calls the showPopupPark method to inflate the park menu
 Similar to the brewery button, this method uses a Boolean to track whether the
layer is turned on or off
 For example is the layer is turned on, presses the button will turn the layer off and
vice versa
 Shopping Centre's are shown with blue shopping bag symbols
Using the Hospital Menu
 When the hospital button is clicked on the top tool bar the hospital menu is
inflated using the showPopupHospital method.
 When a hospital is chosen from the menu, the onMenuItemClick method is
called which queries the chosen hospital based on it’s attributes.
 This results in a red cross graphic overlaying the hospital the user selected
Other Problems
 Android Studio frequent updates
 Downloaded projects from GitHub would not sync (Routing)
 Creating multiple menus
 Main activity is doing too much work
QUESTIONS?
Team work makes the dream work!

More Related Content

PDF
How to use atlas a web 2.0 tool.1 2
PPT
Get started with watch kit development
PDF
Using android's action bar
PPTX
V bennett aster_2015
PPTX
Adams Hunt Lawrence May 2016
PDF
Centre Of Geographic Sciences Remote Sensing Field Camp 2015
PPTX
Sutherland final presentation
PPTX
Interactive Web Map of New Zealand Earthquakes
How to use atlas a web 2.0 tool.1 2
Get started with watch kit development
Using android's action bar
V bennett aster_2015
Adams Hunt Lawrence May 2016
Centre Of Geographic Sciences Remote Sensing Field Camp 2015
Sutherland final presentation
Interactive Web Map of New Zealand Earthquakes

Viewers also liked (20)

PPTX
Model for Prioritizing Catchments for Terrestrial Liming in NS
PDF
Sable presentation bowen
PPTX
Matt cousensagrg presentation_final
PPTX
Centre of Geographic Sciences Remote Sensing Field Camp 2015
PPTX
The essentials for life at cogs
PPTX
Rachel mckenna
PPTX
Presentation: Fee & Brigley
PPTX
Coastal erosion
PPTX
Various frontslides2016
PPTX
Murphy presentation
PPTX
Base mapping of the St.Mary's District
PDF
Karman vortices
PPTX
Trying to decipher fort beausejour
PPTX
Presentation Brake & Scott
PPTX
The Processing of the 1920's Survey Sheets of the City of Saint John, NB for ...
PPTX
Using ArcMap’s Network Analyst to Model Emergency Service Response Routes Dur...
PPTX
Reeves: Modelling & Estimating Forest Structure Attributes Using LiDAR
PPTX
Modelling the Distribution of Karst Topography, Nova Scotia, Canada
PDF
Dominique presentation
PDF
Southwest mongolia multispectral program title
Model for Prioritizing Catchments for Terrestrial Liming in NS
Sable presentation bowen
Matt cousensagrg presentation_final
Centre of Geographic Sciences Remote Sensing Field Camp 2015
The essentials for life at cogs
Rachel mckenna
Presentation: Fee & Brigley
Coastal erosion
Various frontslides2016
Murphy presentation
Base mapping of the St.Mary's District
Karman vortices
Trying to decipher fort beausejour
Presentation Brake & Scott
The Processing of the 1920's Survey Sheets of the City of Saint John, NB for ...
Using ArcMap’s Network Analyst to Model Emergency Service Response Routes Dur...
Reeves: Modelling & Estimating Forest Structure Attributes Using LiDAR
Modelling the Distribution of Karst Topography, Nova Scotia, Canada
Dominique presentation
Southwest mongolia multispectral program title
Ad

Similar to Exploring Halifax Attractions using the Esri Runtime SDK for Android (20)

DOCX
Android action bar and notifications-chapter16
PDF
Publishing geoprocessing-services-tutorial
DOCX
GEIT 3341 DATABASE I LAB 2 GEIT 3341 Database I
PDF
Trimantra - Project Portfolio_NET
PPTX
Cloud technology (Mashup) + Case Study
PDF
Create Location Sharing apps using the Ionic framework
PPTX
Android MapView and MapActivity
PDF
MIDIH i-Deal-profile experiment
PPTX
Basic commands of ArcGIS
DOCX
AssignmentThe work is structured in five main parts, each one addi.docx
PDF
Integrating Salesforce Lightning Map with Lead Object
PDF
Windows phone 7 series
PDF
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
PDF
Apple watch course
PPTX
Mobile Flutter Module for Navigation.pptx
PDF
Executing tools-in-modelbuilder-tutorial
PDF
Android app development guide for freshers by ace web academy
PPTX
iOS Development (Part 3) - Additional GUI Components
PDF
International Journal of Engineering Research and Development
PDF
Vb%20 tutorial
Android action bar and notifications-chapter16
Publishing geoprocessing-services-tutorial
GEIT 3341 DATABASE I LAB 2 GEIT 3341 Database I
Trimantra - Project Portfolio_NET
Cloud technology (Mashup) + Case Study
Create Location Sharing apps using the Ionic framework
Android MapView and MapActivity
MIDIH i-Deal-profile experiment
Basic commands of ArcGIS
AssignmentThe work is structured in five main parts, each one addi.docx
Integrating Salesforce Lightning Map with Lead Object
Windows phone 7 series
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Apple watch course
Mobile Flutter Module for Navigation.pptx
Executing tools-in-modelbuilder-tutorial
Android app development guide for freshers by ace web academy
iOS Development (Part 3) - Additional GUI Components
International Journal of Engineering Research and Development
Vb%20 tutorial
Ad

More from COGS Presentations (12)

PPTX
Remote Sensing Field Camp 2016
PDF
PPTX
Automated change detection in grass gis
PPTX
Online Mapping Support - Age Advantage Association
PPTX
Andrew Fage presentation
PDF
Exploring the Usage of Municipal Parking in Wolfville's Downtown
PDF
From Report to Geographic Study
PDF
GIS Consulting with the BCAF
PPTX
Online Mapping Support - Age Advantage Association
PPTX
CMacMullen_CubaPresentation
PPTX
Geovisualisation and Analysis of the Good Country Index
PPTX
Flood susceptibility for the kennebecasis watershed
Remote Sensing Field Camp 2016
Automated change detection in grass gis
Online Mapping Support - Age Advantage Association
Andrew Fage presentation
Exploring the Usage of Municipal Parking in Wolfville's Downtown
From Report to Geographic Study
GIS Consulting with the BCAF
Online Mapping Support - Age Advantage Association
CMacMullen_CubaPresentation
Geovisualisation and Analysis of the Good Country Index
Flood susceptibility for the kennebecasis watershed

Recently uploaded (20)

PDF
O7-L3 Supply Chain Operations - ICLT Program
PPTX
Cell Structure & Organelles in detailed.
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
Complications of Minimal Access Surgery at WLH
PPTX
master seminar digital applications in india
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
Insiders guide to clinical Medicine.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Pre independence Education in Inndia.pdf
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
Sports Quiz easy sports quiz sports quiz
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
Cell Types and Its function , kingdom of life
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
RMMM.pdf make it easy to upload and study
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
O7-L3 Supply Chain Operations - ICLT Program
Cell Structure & Organelles in detailed.
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Complications of Minimal Access Surgery at WLH
master seminar digital applications in india
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Insiders guide to clinical Medicine.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPH.pptx obstetrics and gynecology in nursing
Pre independence Education in Inndia.pdf
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
O5-L3 Freight Transport Ops (International) V1.pdf
Sports Quiz easy sports quiz sports quiz
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Cell Types and Its function , kingdom of life
FourierSeries-QuestionsWithAnswers(Part-A).pdf
RMMM.pdf make it easy to upload and study
Renaissance Architecture: A Journey from Faith to Humanism
STATICS OF THE RIGID BODIES Hibbelers.pdf

Exploring Halifax Attractions using the Esri Runtime SDK for Android

  • 1. Exploring Halifax Attractions using the Runtime SDK for Android Lindsay LeFresne and Sarah Micheau
  • 2.  Create an app of the Halifax region using an Esri basemap  Use feature layers to display data which can be turned on/off  Ability to query data  Find optimal routing between locations Initial Project Plan Image from: https://weather.gc.ca/forecast/canada/index_e.html?id=NS
  • 3. Software 2.1 Online & Desktop 10.3 Integrated Development Environment (IDE)
  • 4. Getting Started  Choose an Android Version and API level  Create an emulator  Basics of Android Studio  Esri tutorials from ArcGIS for Developers
  • 5. Android Platform Versions Platform versions are a trade off between the percentage of users’ the app aims to target and available features.
  • 6. Creating an Emulator  Option to connect an Android device or use a virtual emulator  We created several emulators in Android Studio which are shown in the image below
  • 7. Basics of Android Studio  Build Automation  Gradle has the ability to access other host repositories including Maven  Android studio is the only IDE that supports the Gradle build system
  • 8. Tutorial 1: Add a map to your app  Completed the ‘Add a map to your app’ tutorial on the Esri developers website  Defined MapView  Problems:
  • 9. Tutorial 2: Use ArcGIS basemaps (1/2)  In the onCreate method, the mapView was retrieved from the XML where we defined it earlier  onPause and onResume methods were added  In menu_main.xml 4 different basemaps were defined as a menu item
  • 10.  Several basemap variables were defined  In the onCreateOptionsMenu method, menu.getItem was used to retrieve the basemap menu items  onOptionsItemSelected uses the menu item ID to determine the action to be taken from the switch statement Tutorial 2: Use ArcGIS basemaps (2/2)
  • 11. Tutorial 3: Access feature data in the cloud  A Feature layer URL was added to the string.xml, this accesses the layer from the cloud  Layer variables were defined in main code  Code was added to the onCreate method to create the feature layer graphic upon start up
  • 12. Tutorial 4: Add geocoding to your app  Geocoding variables were added  New graphics layer was added in the onCreate method  Code was added to set a listener to ensure that the map view was initialized and ready to use upon app startup.  The next step was to allow user to enter an address this was done by adding a search button to the top bar in the app.  LocatorAsyncTask method added to execute the geocoding and zoom to the specified location.
  • 13. Creating the Layers Used  Trails  Provided by Halifax Open Data (http://www.halifax.ca/opendata/) and imported into ArcGIS Online  Breweries  Geocoded using ArcGIS Online  Shopping Centres  Main large shopping centres were chosen  Geocoded using ArcGIS Online  Parks  Provincial parks within Halifax County were located from http://parks.novascotia.ca/  Geocoded using ArcGIS Online  Hospitals  Geocoded using ArcGIS Online All layers were symbolized within ArcGIS Online, and made available to the public
  • 14. Geocoding in ArcGIS Online  CSV files were created using Addresses of the locations used.  They were then imported into ArcGIS Online which automatically geocoded the locations.
  • 15. Trails Layer  Layer was downloaded from Halifax Open Data website (http://www.halifax.ca/opendata/) as a shapefile and imported into ArcGIS for Desktop.  Problem: Projection Web Mercator  The layer is then shared as a feature service and brought into ArcGIS Online.  All feature layers were added in the string.xml file using the feature service URL’s
  • 16. Creating Image Buttons  Image Buttons were created to allow user to query or select feature layers  Five image buttons were used: App Info, Brewery, Biking (Trails), Parks and Shopping Centres.  A drawable xml was created for each button that defined the shape and color of the button.  The ImageButtons were created under the layout folder with the drawable and mipmap photos assigned as part of their attributes  The onClick attribute was used to link the button to a method within the code that defined the button’s action.
  • 17. Using the App Info Button  When information button is clicked the method appInfo is called that displays a pop up window explaining the app to the user.
  • 18. Using the Brewery Button  When the brewery button is clicked the onBreweryClick method is called  This method uses a boolean to track whether the layer is turned on or off.  For example if the layer is turned on, pressing the button will turn the layer off and vice versa.  Brewery layer was added as a feature layer using the feature layer URL
  • 19. Using the Trail (Biking) Button  The trail layer is defined in the onCreate method and is displayed upon start up.  When the user clicks on the biking button it calls the showPopup method.  When the user makes their selection it calls the onMenuItemClick method.  Resulting trails are highlighted in blue using a SimpeLineSymbol
  • 20. Using the Park button  The park layer is defined in the onCreate method and is displayed upon start up  This button works similarly to the biking button, where it queries the layers attributes allowing the user to select parks where there is swimming permitted.  The button calls the showPopupPark method to inflate the park menu  Parks are identified by an overlaying SimpleMarkerSymbol
  • 21. Using the Shopping Button  When the shopping button is clicked the onShoppingClick method is called. The button calls the showPopupPark method to inflate the park menu  Similar to the brewery button, this method uses a Boolean to track whether the layer is turned on or off  For example is the layer is turned on, presses the button will turn the layer off and vice versa  Shopping Centre's are shown with blue shopping bag symbols
  • 22. Using the Hospital Menu  When the hospital button is clicked on the top tool bar the hospital menu is inflated using the showPopupHospital method.  When a hospital is chosen from the menu, the onMenuItemClick method is called which queries the chosen hospital based on it’s attributes.  This results in a red cross graphic overlaying the hospital the user selected
  • 23. Other Problems  Android Studio frequent updates  Downloaded projects from GitHub would not sync (Routing)  Creating multiple menus  Main activity is doing too much work
  • 24. QUESTIONS? Team work makes the dream work!

Editor's Notes

  • #2: iNTRO
  • #3: 2
  • #4: 3
  • #6: 5
  • #7: 6
  • #8: 7
  • #9: 8
  • #10: 9
  • #11: 10
  • #12: 11
  • #14: 13
  • #15: 14
  • #18: We created an AlertDialog builder. This allows the user to close the popup window when they wish. The other option was to use the toast option. But a specific amount of time coujld not be chosen (only short and long), and we did not know the speed of the reader
  • #19: Problem: initial problem was that the when the layer was turned on, the button disappeared
  • #20: 19
  • #21: 20
  • #25: 24