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

Viewers also liked

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

Viewers also liked (20)

Model for Prioritizing Catchments for Terrestrial Liming in NS
Model for Prioritizing Catchments for Terrestrial Liming in NSModel for Prioritizing Catchments for Terrestrial Liming in NS
Model for Prioritizing Catchments for Terrestrial Liming in NS
 
Sable presentation bowen
Sable presentation bowenSable presentation bowen
Sable presentation bowen
 
Matt cousensagrg presentation_final
Matt cousensagrg presentation_finalMatt cousensagrg presentation_final
Matt cousensagrg presentation_final
 
Centre of Geographic Sciences Remote Sensing Field Camp 2015
Centre of Geographic Sciences Remote Sensing Field Camp 2015Centre of Geographic Sciences Remote Sensing Field Camp 2015
Centre of Geographic Sciences Remote Sensing Field Camp 2015
 
The essentials for life at cogs
The essentials for life at cogsThe essentials for life at cogs
The essentials for life at cogs
 
Rachel mckenna
Rachel mckennaRachel mckenna
Rachel mckenna
 
Presentation: Fee & Brigley
Presentation: Fee & BrigleyPresentation: Fee & Brigley
Presentation: Fee & Brigley
 
Coastal erosion
Coastal erosionCoastal erosion
Coastal erosion
 
Various frontslides2016
Various frontslides2016Various frontslides2016
Various frontslides2016
 
Murphy presentation
Murphy presentationMurphy presentation
Murphy presentation
 
Base mapping of the St.Mary's District
Base mapping of the St.Mary's DistrictBase mapping of the St.Mary's District
Base mapping of the St.Mary's District
 
Karman vortices
Karman vorticesKarman vortices
Karman vortices
 
Trying to decipher fort beausejour
Trying to decipher fort beausejourTrying to decipher fort beausejour
Trying to decipher fort beausejour
 
Presentation Brake & Scott
Presentation Brake & ScottPresentation Brake & Scott
Presentation Brake & Scott
 
The Processing of the 1920's Survey Sheets of the City of Saint John, NB for ...
The Processing of the 1920's Survey Sheets of the City of Saint John, NB for ...The Processing of the 1920's Survey Sheets of the City of Saint John, NB for ...
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...
Using ArcMap’s Network Analyst to Model Emergency Service Response Routes Dur...Using ArcMap’s Network Analyst to Model Emergency Service Response Routes Dur...
Using ArcMap’s Network Analyst to Model Emergency Service Response Routes Dur...
 
Reeves: Modelling & Estimating Forest Structure Attributes Using LiDAR
Reeves: Modelling & Estimating Forest Structure Attributes Using LiDARReeves: Modelling & Estimating Forest Structure Attributes Using LiDAR
Reeves: Modelling & Estimating Forest Structure Attributes Using LiDAR
 
Modelling the Distribution of Karst Topography, Nova Scotia, Canada
Modelling the Distribution of Karst Topography, Nova Scotia, CanadaModelling the Distribution of Karst Topography, Nova Scotia, Canada
Modelling the Distribution of Karst Topography, Nova Scotia, Canada
 
Dominique presentation
Dominique presentationDominique presentation
Dominique presentation
 
Southwest mongolia multispectral program title
Southwest mongolia multispectral program titleSouthwest mongolia multispectral program title
Southwest mongolia multispectral program title
 

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

Android action bar and notifications-chapter16
Android action bar and notifications-chapter16Android action bar and notifications-chapter16
Android action bar and notifications-chapter16
Dr. Ramkumar Lakshminarayanan
 
Publishing geoprocessing-services-tutorial
Publishing geoprocessing-services-tutorialPublishing geoprocessing-services-tutorial
Publishing geoprocessing-services-tutorial
Sebastian Correa Gimenez
 
GEIT 3341 DATABASE I LAB 2 GEIT 3341 Database I
GEIT 3341  DATABASE I  LAB 2  GEIT 3341 Database I  GEIT 3341  DATABASE I  LAB 2  GEIT 3341 Database I
GEIT 3341 DATABASE I LAB 2 GEIT 3341 Database I
MatthewTennant613
 
Trimantra - Project Portfolio_NET
Trimantra - Project Portfolio_NETTrimantra - Project Portfolio_NET
Trimantra - Project Portfolio_NET
Mihir G.
 
Cloud technology (Mashup) + Case Study
Cloud technology (Mashup) + Case StudyCloud technology (Mashup) + Case Study
Cloud technology (Mashup) + Case Study
Mustafa Salam
 
Create Location Sharing apps using the Ionic framework
Create Location Sharing apps using the Ionic framework					Create Location Sharing apps using the Ionic framework
Create Location Sharing apps using the Ionic framework
Shelly Megan
 
Android MapView and MapActivity
Android MapView and MapActivityAndroid MapView and MapActivity
Android MapView and MapActivity
Ahsanul Karim
 
MIDIH i-Deal-profile experiment
MIDIH i-Deal-profile experimentMIDIH i-Deal-profile experiment
MIDIH i-Deal-profile experiment
MIDIH_EU
 
Basic commands of ArcGIS
Basic commands of ArcGISBasic commands of ArcGIS
Basic commands of ArcGIS
KU Leuven
 
AssignmentThe work is structured in five main parts, each one addi.docx
AssignmentThe work is structured in five main parts, each one addi.docxAssignmentThe work is structured in five main parts, each one addi.docx
AssignmentThe work is structured in five main parts, each one addi.docx
ssuser562afc1
 
Windows phone 7 series
Windows phone 7 seriesWindows phone 7 series
Windows phone 7 series
openbala
 
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Flutter Agency
 
Apple watch course
Apple watch courseApple watch course
Apple watch course
bestonlinecoursescoupon
 
Executing tools-in-modelbuilder-tutorial
Executing tools-in-modelbuilder-tutorialExecuting tools-in-modelbuilder-tutorial
Executing tools-in-modelbuilder-tutorial
askar_gila
 
Android app development guide for freshers by ace web academy
Android app development guide for freshers  by ace web academyAndroid app development guide for freshers  by ace web academy
Android app development guide for freshers by ace web academy
Ace Web Academy -Career Development Center
 
iOS Development (Part 3) - Additional GUI Components
iOS Development (Part 3) - Additional GUI ComponentsiOS Development (Part 3) - Additional GUI Components
iOS Development (Part 3) - Additional GUI Components
Asim Rais Siddiqui
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
IJERD Editor
 
Vb%20 tutorial
Vb%20 tutorialVb%20 tutorial
Vb%20 tutorial
Satya Prakash
 
Intro to IBM Bluemix DevOps Services, a Workshop with a Cloudant twist
Intro to IBM Bluemix DevOps Services, a Workshop with a Cloudant twistIntro to IBM Bluemix DevOps Services, a Workshop with a Cloudant twist
Intro to IBM Bluemix DevOps Services, a Workshop with a Cloudant twist
Lauren Hayward Schaefer
 
Maps in android
Maps in androidMaps in android
Maps in android
Sumita Das
 

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

Android action bar and notifications-chapter16
Android action bar and notifications-chapter16Android action bar and notifications-chapter16
Android action bar and notifications-chapter16
 
Publishing geoprocessing-services-tutorial
Publishing geoprocessing-services-tutorialPublishing geoprocessing-services-tutorial
Publishing geoprocessing-services-tutorial
 
GEIT 3341 DATABASE I LAB 2 GEIT 3341 Database I
GEIT 3341  DATABASE I  LAB 2  GEIT 3341 Database I  GEIT 3341  DATABASE I  LAB 2  GEIT 3341 Database I
GEIT 3341 DATABASE I LAB 2 GEIT 3341 Database I
 
Trimantra - Project Portfolio_NET
Trimantra - Project Portfolio_NETTrimantra - Project Portfolio_NET
Trimantra - Project Portfolio_NET
 
Cloud technology (Mashup) + Case Study
Cloud technology (Mashup) + Case StudyCloud technology (Mashup) + Case Study
Cloud technology (Mashup) + Case Study
 
Create Location Sharing apps using the Ionic framework
Create Location Sharing apps using the Ionic framework					Create Location Sharing apps using the Ionic framework
Create Location Sharing apps using the Ionic framework
 
Android MapView and MapActivity
Android MapView and MapActivityAndroid MapView and MapActivity
Android MapView and MapActivity
 
MIDIH i-Deal-profile experiment
MIDIH i-Deal-profile experimentMIDIH i-Deal-profile experiment
MIDIH i-Deal-profile experiment
 
Basic commands of ArcGIS
Basic commands of ArcGISBasic commands of ArcGIS
Basic commands of ArcGIS
 
AssignmentThe work is structured in five main parts, each one addi.docx
AssignmentThe work is structured in five main parts, each one addi.docxAssignmentThe work is structured in five main parts, each one addi.docx
AssignmentThe work is structured in five main parts, each one addi.docx
 
Windows phone 7 series
Windows phone 7 seriesWindows phone 7 series
Windows phone 7 series
 
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
 
Apple watch course
Apple watch courseApple watch course
Apple watch course
 
Executing tools-in-modelbuilder-tutorial
Executing tools-in-modelbuilder-tutorialExecuting tools-in-modelbuilder-tutorial
Executing tools-in-modelbuilder-tutorial
 
Android app development guide for freshers by ace web academy
Android app development guide for freshers  by ace web academyAndroid app development guide for freshers  by ace web academy
Android app development guide for freshers by ace web academy
 
iOS Development (Part 3) - Additional GUI Components
iOS Development (Part 3) - Additional GUI ComponentsiOS Development (Part 3) - Additional GUI Components
iOS Development (Part 3) - Additional GUI Components
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Vb%20 tutorial
Vb%20 tutorialVb%20 tutorial
Vb%20 tutorial
 
Intro to IBM Bluemix DevOps Services, a Workshop with a Cloudant twist
Intro to IBM Bluemix DevOps Services, a Workshop with a Cloudant twistIntro to IBM Bluemix DevOps Services, a Workshop with a Cloudant twist
Intro to IBM Bluemix DevOps Services, a Workshop with a Cloudant twist
 
Maps in android
Maps in androidMaps in android
Maps in android
 

More from COGS Presentations

Remote Sensing Field Camp 2016
Remote Sensing Field Camp 2016 Remote Sensing Field Camp 2016
Remote Sensing Field Camp 2016
COGS Presentations
 
Test2016
Test2016Test2016
Automated change detection in grass gis
Automated change detection in grass gisAutomated change detection in grass gis
Automated change detection in grass gis
COGS Presentations
 
Online Mapping Support - Age Advantage Association
Online Mapping Support - Age Advantage AssociationOnline Mapping Support - Age Advantage Association
Online Mapping Support - Age Advantage Association
COGS Presentations
 
Andrew Fage presentation
Andrew Fage   presentationAndrew Fage   presentation
Andrew Fage presentation
COGS Presentations
 
Exploring the Usage of Municipal Parking in Wolfville's Downtown
Exploring the Usage of Municipal Parking in Wolfville's DowntownExploring the Usage of Municipal Parking in Wolfville's Downtown
Exploring the Usage of Municipal Parking in Wolfville's Downtown
COGS Presentations
 
From Report to Geographic Study
From Report to Geographic StudyFrom Report to Geographic Study
From Report to Geographic Study
COGS Presentations
 
GIS Consulting with the BCAF
GIS Consulting with the BCAFGIS Consulting with the BCAF
GIS Consulting with the BCAF
COGS Presentations
 
Online Mapping Support - Age Advantage Association
Online Mapping Support - Age Advantage Association Online Mapping Support - Age Advantage Association
Online Mapping Support - Age Advantage Association
COGS Presentations
 
CMacMullen_CubaPresentation
CMacMullen_CubaPresentationCMacMullen_CubaPresentation
CMacMullen_CubaPresentation
COGS Presentations
 
Geovisualisation and Analysis of the Good Country Index
Geovisualisation and Analysis of the Good Country IndexGeovisualisation and Analysis of the Good Country Index
Geovisualisation and Analysis of the Good Country Index
COGS Presentations
 
Flood susceptibility for the kennebecasis watershed
Flood susceptibility for the kennebecasis watershedFlood susceptibility for the kennebecasis watershed
Flood susceptibility for the kennebecasis watershed
COGS Presentations
 

More from COGS Presentations (12)

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

Recently uploaded

ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 
How to deliver Powerpoint Presentations.pptx
How to deliver Powerpoint  Presentations.pptxHow to deliver Powerpoint  Presentations.pptx
How to deliver Powerpoint Presentations.pptx
HajraNaeem15
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
RAHUL
 
Leveraging Generative AI to Drive Nonprofit Innovation
Leveraging Generative AI to Drive Nonprofit InnovationLeveraging Generative AI to Drive Nonprofit Innovation
Leveraging Generative AI to Drive Nonprofit Innovation
TechSoup
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
History of Stoke Newington
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
Celine George
 
Wound healing PPT
Wound healing PPTWound healing PPT
Wound healing PPT
Jyoti Chand
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
Nicholas Montgomery
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
PECB
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
Jean Carlos Nunes Paixão
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Fajar Baskoro
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 

Recently uploaded (20)

ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 
How to deliver Powerpoint Presentations.pptx
How to deliver Powerpoint  Presentations.pptxHow to deliver Powerpoint  Presentations.pptx
How to deliver Powerpoint Presentations.pptx
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
 
Leveraging Generative AI to Drive Nonprofit Innovation
Leveraging Generative AI to Drive Nonprofit InnovationLeveraging Generative AI to Drive Nonprofit Innovation
Leveraging Generative AI to Drive Nonprofit Innovation
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
 
Wound healing PPT
Wound healing PPTWound healing PPT
Wound healing PPT
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 

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

  1. iNTRO
  2. 2
  3. 3
  4. 5
  5. 6
  6. 7
  7. 8
  8. 9
  9. 10
  10. 11
  11. 13
  12. 14
  13. 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
  14. Problem: initial problem was that the when the layer was turned on, the button disappeared
  15. 19
  16. 20
  17. 24