SlideShare a Scribd company logo
1 of 27
Building a Better (Campus) Map
Better campus mapping - coming soon to a campus near you.
Aaron Knight • SUNY College of Environmental Science and Forestry • #heweb16 #dpa1 • @farktal
Building a Better Campus Map
Welcome!
Today’s Agenda:
Background
Fixing Data on Map
Services
Easy Interactive Maps
Some Background
2007
2008-2013
2013-Present
Perpetually in beta, Google style. Live: www.esf.edu/maps/beta/
Let’s Talk About Data
Let’s Talk About Data
Major services to worry about:
Google MapMaker (and Places, Plus,
and Maps)
OpenStreetMap
HERE
Each service has its… quirks.
Let’s Talk About Data
Data Overload
Major data sources have required a
great deal of cleanup.
Especially a problem with published
full directories.
Lots of Inputs
Some of them are even good.
Image from “Apple made a bad move replacing Google Maps on iOS 6” - It’s A Gadget. https://www.itsagadget.com/2012/09/apple-google-maps-ios-6.html
The Google-Sphere
Maps, Map Maker, Local, Plus, Oh My!
Google Logo from googleblog.blogspot.com/2015/09/google-update.html - Service screenshots from September 2015.
The Google-Sphere
You might have heard of Google Map Maker before…
Image from Ars Technica “Google temporarily shuts down Map Maker due to vandalism.” http://arstechnica.com/gadgets/2015/05/google-temporarily-shuts-down-map-maker-due-to-vandalism/
The Google-Sphere
Google Maps is fed by several sources:
Maps (user error reports)
Map Maker
Places
Plus
Internal staff
…the combination of which is far from
perfect.
Google Maps - iOS app icon. Map source: Google Maps
The Google-Sphere
Fastest way to fix map information?
Google Map Maker
Fastest way to fix POIs?
Google Local places (if claimed)
Google Map Maker if not.
The Google-Sphere
Setbacks may occur.
I wish I was kidding.
OpenStreetMap
Where the WikiPedia Model Meets Mapping
OpenStreetMap
OpenStreetMap is important because…
Used for Facebook, Apple Maps,
Foursquare, Craigslist
No real moderation.
It’s really easy to work with for your
own purposes.
www.openstreetmap.org
Now What?
This isn’t another of those “other duties as assigned,” is it?
Now What?
Stay on top of changes
Check in sporadically
Find out when data sources drop
Update as your campus changes
Let’s Build Something
Play with it: www.esf.edu/maps/beta/
Introducing Leaflet
Leaflet
leafletjs.com
Open-Source
Lightweight and Mobile Friendly
Extensible
Plugins
Leaflet-providers
Awesome-Markers
many, many more
Hello, World
Adapted from LeafletJS Quick Start (http://leafletjs.com/examples/quick-start.html)
<link rel="stylesheet"
href="https://unpkg.com/leaflet@1.0.0/dist/leaflet.css" />
<script
src="https://unpkg.com/leaflet@1.0.0/dist/leaflet.js"></script>
<div id="map" style="width: 100%; height: 500px"></div>
<script>
var map = L.map('map').setView([43.03467, -76.13754], 16);
L.tileLayer(‘https://api.mapbox.com/styles/v1/mapbox/stree
ts-v9/tiles/256/{z}/{x}/{y}?access_token=p{token}', {
attribution: ‘{attribution}’,
maxZoom: 18,
accessToken: ‘{token}’
}).addTo(map);
var popup = L.popup();
function onMapClick(e) {
popup
.setLatLng(e.latlng)
.setContent("You clicked the map at " +
e.latlng.toString())
.openOn(map);
}
map.on('click', onMapClick);
</script>
Using Providers
Full previews of available free* tile
layers:
http://leaflet-extras.github.io/leaflet-
providers/preview/index.html
<link rel="stylesheet"
href="https://unpkg.com/leaflet@1.0.0/dist/leaflet.css" />
<script
src="https://unpkg.com/leaflet@1.0.0/dist/leaflet.js"></script>
<div id="map" style="width: 100%; height: 500px"></div>
<script type="text/javascript" src="leaflet-
providers.js"></script>
<script>
var map = L.map('map').setView([43.03467, -76.13754], 16);
var tilelayer = new
L.TileLayer.Provider("OpenStreetMap.Mapnik");
map.addLayer(tilelayer);
</script>
* some require registration
Location Detection
Location detection works best on mobile.
<link rel="stylesheet"
href="https://unpkg.com/leaflet@1.0.0/dist/leaflet.css" />
<script
src="https://unpkg.com/leaflet@1.0.0/dist/leaflet.js"></script>
<div id="map" style="width: 100%; height: 500px"></div>
<script type="text/javascript" src="leaflet-
providers.js"></script>
<script>
var map = L.map('map').setView([43.03467, -76.13754], 16);
var tilelayer = new
L.TileLayer.Provider("OpenStreetMap.Mapnik");
map.addLayer(tilelayer);
function onLocationFound(e) {
var radius = e.accuracy / 2;
L.marker(e.latlng).addTo(map)
.bindPopup("You are (approximately)
here.").openPopup();
}
map.on('locationfound', onLocationFound);
map.locate({maxZoom: 16});
</script>
Polygons and Markers
var upgate = L.marker([43.0358, -76.13807], {icon:
L.AwesomeMarkers.icon({icon: 'icon-info-sign', color:
'blue'})}).bindPopup("<strong>ESF Campus
Entrance</strong><br>Visitor Entrance and Information");
var pois = L.layerGroup([upgate]);
var moon = L.polygon([
[43.03498, -76.13661],
[43.03498, -76.13609],
[43.03446, -76.13609],
[43.03446, -76.13661]
], {
color: buildingFill,
fillColor: buildingFill,
fillOpacity: 0.5,
weight: 0
})
.bindPopup("<strong>F. Franklin Moon
Library</strong><br><a target='_blank'
href='http://www.esf.edu/welcome/campus/moon.htm'>Campus
Tour</a>");
Finishing Touches
Find your best tile layer.
MapBox tiles are a great choice if you
have a budget
That’s All, Folks!
Questions?
Contact Information
Aaron Knight
Senior Programmer/Analyst
Information Systems, SUNY-ESF
@farktal on Twitter
acknight@esf.edu
Slides: www.acknight.com/speaking/
Also all of the code samples you saw
today.

More Related Content

Viewers also liked

Viewers also liked (18)

That is Not My Job
That is Not My JobThat is Not My Job
That is Not My Job
 
Events in Stereo: How to help your events and campaigns succeed #heweb16 #mcs3
Events in Stereo: How to help your events and campaigns succeed #heweb16 #mcs3Events in Stereo: How to help your events and campaigns succeed #heweb16 #mcs3
Events in Stereo: How to help your events and campaigns succeed #heweb16 #mcs3
 
You Broke It, You Bought It
You Broke It, You Bought ItYou Broke It, You Bought It
You Broke It, You Bought It
 
S.I.F.T. Through Your Content For Accessibility
S.I.F.T. Through Your Content For AccessibilityS.I.F.T. Through Your Content For Accessibility
S.I.F.T. Through Your Content For Accessibility
 
Nailing Pinterest: It's Not All Wedding Dresses and Desserts
Nailing Pinterest: It's Not All Wedding Dresses and DessertsNailing Pinterest: It's Not All Wedding Dresses and Desserts
Nailing Pinterest: It's Not All Wedding Dresses and Desserts
 
"No, YOU'RE Crying": How Two Schools Turned a Cinderella Experience into Soci...
"No, YOU'RE Crying": How Two Schools Turned a Cinderella Experience into Soci..."No, YOU'RE Crying": How Two Schools Turned a Cinderella Experience into Soci...
"No, YOU'RE Crying": How Two Schools Turned a Cinderella Experience into Soci...
 
Get Hooked on Integrations with GitHub
Get Hooked on Integrations with GitHubGet Hooked on Integrations with GitHub
Get Hooked on Integrations with GitHub
 
Higher Ed Governance for the Real World
Higher Ed Governance for the Real WorldHigher Ed Governance for the Real World
Higher Ed Governance for the Real World
 
Digital hoarding is driving away users and killing conversion
Digital hoarding is driving away users and killing conversionDigital hoarding is driving away users and killing conversion
Digital hoarding is driving away users and killing conversion
 
The New Analytics of Web Governance
The New Analytics of Web GovernanceThe New Analytics of Web Governance
The New Analytics of Web Governance
 
Web Governance in Higher Education
Web Governance in Higher EducationWeb Governance in Higher Education
Web Governance in Higher Education
 
Using the Web Arms Race to your advantage - sell more via a better site :)
Using the Web Arms Race to your advantage - sell more via a better site :)Using the Web Arms Race to your advantage - sell more via a better site :)
Using the Web Arms Race to your advantage - sell more via a better site :)
 
A New Framework for Web Governance
A New Framework for Web GovernanceA New Framework for Web Governance
A New Framework for Web Governance
 
Hello from the Other Side: Painful Lessons Learned from a Website Redesign
Hello from the Other Side: Painful Lessons Learned from a Website RedesignHello from the Other Side: Painful Lessons Learned from a Website Redesign
Hello from the Other Side: Painful Lessons Learned from a Website Redesign
 
Shall We Play a Game? Gaming the System, When the System Is Your Learning Man...
Shall We Play a Game? Gaming the System, When the System Is Your Learning Man...Shall We Play a Game? Gaming the System, When the System Is Your Learning Man...
Shall We Play a Game? Gaming the System, When the System Is Your Learning Man...
 
Train the Trainer: Tips for Enhancing Employee Learning (Presented at HighEdW...
Train the Trainer: Tips for Enhancing Employee Learning (Presented at HighEdW...Train the Trainer: Tips for Enhancing Employee Learning (Presented at HighEdW...
Train the Trainer: Tips for Enhancing Employee Learning (Presented at HighEdW...
 
Getting it Right: What Really Matters to Students In Social Media Communities...
Getting it Right: What Really Matters to Students In Social Media Communities...Getting it Right: What Really Matters to Students In Social Media Communities...
Getting it Right: What Really Matters to Students In Social Media Communities...
 
Managing Chaos - Digital Governance
Managing Chaos - Digital GovernanceManaging Chaos - Digital Governance
Managing Chaos - Digital Governance
 

More from farktal

More from farktal (7)

Finding Your Way - Campus Mapping and Big Data - #econfpsu16
Finding Your Way - Campus Mapping and Big Data - #econfpsu16Finding Your Way - Campus Mapping and Big Data - #econfpsu16
Finding Your Way - Campus Mapping and Big Data - #econfpsu16
 
Finding Your Way - Big Data vs. Wayfinding On Your Campus - #heweb15 #aim7
Finding Your Way - Big Data vs. Wayfinding On Your Campus - #heweb15 #aim7Finding Your Way - Big Data vs. Wayfinding On Your Campus - #heweb15 #aim7
Finding Your Way - Big Data vs. Wayfinding On Your Campus - #heweb15 #aim7
 
Finding Your Way (WRK6) - Post-Conference Workshop at HighEdWeb 2014
Finding Your Way (WRK6) - Post-Conference Workshop at HighEdWeb 2014Finding Your Way (WRK6) - Post-Conference Workshop at HighEdWeb 2014
Finding Your Way (WRK6) - Post-Conference Workshop at HighEdWeb 2014
 
Fix All The (Map) Data - DPA4 at HighEdWeb 2014
Fix All The (Map) Data - DPA4 at HighEdWeb 2014Fix All The (Map) Data - DPA4 at HighEdWeb 2014
Fix All The (Map) Data - DPA4 at HighEdWeb 2014
 
Managing Chapter Growth - Alpha Phi Omega Region I/II Conference Winter 2014
Managing Chapter Growth - Alpha Phi Omega Region I/II Conference Winter 2014Managing Chapter Growth - Alpha Phi Omega Region I/II Conference Winter 2014
Managing Chapter Growth - Alpha Phi Omega Region I/II Conference Winter 2014
 
Adventures in campus mapping - HighEdWeb Florida 2013
Adventures in campus mapping - HighEdWeb Florida 2013Adventures in campus mapping - HighEdWeb Florida 2013
Adventures in campus mapping - HighEdWeb Florida 2013
 
Fix All The (Map) Data! - HighEdWeb 2013 Workshop
Fix All The (Map) Data! - HighEdWeb 2013 WorkshopFix All The (Map) Data! - HighEdWeb 2013 Workshop
Fix All The (Map) Data! - HighEdWeb 2013 Workshop
 

Recently uploaded

Cymulate (Breach and Attack Simulation).
Cymulate (Breach and Attack Simulation).Cymulate (Breach and Attack Simulation).
Cymulate (Breach and Attack Simulation).
luckyk1575
 

Recently uploaded (12)

Understanding Poverty: A Community Questionnaire
Understanding Poverty: A Community QuestionnaireUnderstanding Poverty: A Community Questionnaire
Understanding Poverty: A Community Questionnaire
 
art integrated project of computer applications
art integrated project of computer applicationsart integrated project of computer applications
art integrated project of computer applications
 
DAY 0 8 A Revelation 05-19-2024 PPT.pptx
DAY 0 8 A Revelation 05-19-2024 PPT.pptxDAY 0 8 A Revelation 05-19-2024 PPT.pptx
DAY 0 8 A Revelation 05-19-2024 PPT.pptx
 
Cymulate (Breach and Attack Simulation).
Cymulate (Breach and Attack Simulation).Cymulate (Breach and Attack Simulation).
Cymulate (Breach and Attack Simulation).
 
OC Streetcar Final Presentation-Downtown Santa Ana
OC Streetcar Final Presentation-Downtown Santa AnaOC Streetcar Final Presentation-Downtown Santa Ana
OC Streetcar Final Presentation-Downtown Santa Ana
 
Deciding The Topic of our Magazine.pptx.
Deciding The Topic of our Magazine.pptx.Deciding The Topic of our Magazine.pptx.
Deciding The Topic of our Magazine.pptx.
 
The Influence and Evolution of Mogul Press in Contemporary Public Relations.docx
The Influence and Evolution of Mogul Press in Contemporary Public Relations.docxThe Influence and Evolution of Mogul Press in Contemporary Public Relations.docx
The Influence and Evolution of Mogul Press in Contemporary Public Relations.docx
 
ACM CHT Best Inspection Practices Kinben Innovation MIC Slideshare.pdf
ACM CHT Best Inspection Practices Kinben Innovation MIC Slideshare.pdfACM CHT Best Inspection Practices Kinben Innovation MIC Slideshare.pdf
ACM CHT Best Inspection Practices Kinben Innovation MIC Slideshare.pdf
 
ServiceNow CIS-Discovery Exam Dumps 2024
ServiceNow CIS-Discovery Exam Dumps 2024ServiceNow CIS-Discovery Exam Dumps 2024
ServiceNow CIS-Discovery Exam Dumps 2024
 
Breathing in New Life_ Part 3 05 22 2024.pptx
Breathing in New Life_ Part 3 05 22 2024.pptxBreathing in New Life_ Part 3 05 22 2024.pptx
Breathing in New Life_ Part 3 05 22 2024.pptx
 
Oracle Database Administration I (1Z0-082) Exam Dumps 2024.pdf
Oracle Database Administration I (1Z0-082) Exam Dumps 2024.pdfOracle Database Administration I (1Z0-082) Exam Dumps 2024.pdf
Oracle Database Administration I (1Z0-082) Exam Dumps 2024.pdf
 
05232024 Joint Meeting - Community Networking
05232024 Joint Meeting - Community Networking05232024 Joint Meeting - Community Networking
05232024 Joint Meeting - Community Networking
 

Building a Better (Campus) Map - #DPA1 at #heweb16

  • 1. Building a Better (Campus) Map Better campus mapping - coming soon to a campus near you. Aaron Knight • SUNY College of Environmental Science and Forestry • #heweb16 #dpa1 • @farktal
  • 2. Building a Better Campus Map Welcome! Today’s Agenda: Background Fixing Data on Map Services Easy Interactive Maps
  • 6. 2013-Present Perpetually in beta, Google style. Live: www.esf.edu/maps/beta/
  • 8. Let’s Talk About Data Major services to worry about: Google MapMaker (and Places, Plus, and Maps) OpenStreetMap HERE Each service has its… quirks.
  • 9. Let’s Talk About Data Data Overload Major data sources have required a great deal of cleanup. Especially a problem with published full directories. Lots of Inputs Some of them are even good. Image from “Apple made a bad move replacing Google Maps on iOS 6” - It’s A Gadget. https://www.itsagadget.com/2012/09/apple-google-maps-ios-6.html
  • 10. The Google-Sphere Maps, Map Maker, Local, Plus, Oh My! Google Logo from googleblog.blogspot.com/2015/09/google-update.html - Service screenshots from September 2015.
  • 11. The Google-Sphere You might have heard of Google Map Maker before… Image from Ars Technica “Google temporarily shuts down Map Maker due to vandalism.” http://arstechnica.com/gadgets/2015/05/google-temporarily-shuts-down-map-maker-due-to-vandalism/
  • 12. The Google-Sphere Google Maps is fed by several sources: Maps (user error reports) Map Maker Places Plus Internal staff …the combination of which is far from perfect. Google Maps - iOS app icon. Map source: Google Maps
  • 13. The Google-Sphere Fastest way to fix map information? Google Map Maker Fastest way to fix POIs? Google Local places (if claimed) Google Map Maker if not.
  • 14. The Google-Sphere Setbacks may occur. I wish I was kidding.
  • 15. OpenStreetMap Where the WikiPedia Model Meets Mapping
  • 16. OpenStreetMap OpenStreetMap is important because… Used for Facebook, Apple Maps, Foursquare, Craigslist No real moderation. It’s really easy to work with for your own purposes. www.openstreetmap.org
  • 17. Now What? This isn’t another of those “other duties as assigned,” is it?
  • 18. Now What? Stay on top of changes Check in sporadically Find out when data sources drop Update as your campus changes
  • 20. Play with it: www.esf.edu/maps/beta/
  • 21. Introducing Leaflet Leaflet leafletjs.com Open-Source Lightweight and Mobile Friendly Extensible Plugins Leaflet-providers Awesome-Markers many, many more
  • 22. Hello, World Adapted from LeafletJS Quick Start (http://leafletjs.com/examples/quick-start.html) <link rel="stylesheet" href="https://unpkg.com/leaflet@1.0.0/dist/leaflet.css" /> <script src="https://unpkg.com/leaflet@1.0.0/dist/leaflet.js"></script> <div id="map" style="width: 100%; height: 500px"></div> <script> var map = L.map('map').setView([43.03467, -76.13754], 16); L.tileLayer(‘https://api.mapbox.com/styles/v1/mapbox/stree ts-v9/tiles/256/{z}/{x}/{y}?access_token=p{token}', { attribution: ‘{attribution}’, maxZoom: 18, accessToken: ‘{token}’ }).addTo(map); var popup = L.popup(); function onMapClick(e) { popup .setLatLng(e.latlng) .setContent("You clicked the map at " + e.latlng.toString()) .openOn(map); } map.on('click', onMapClick); </script>
  • 23. Using Providers Full previews of available free* tile layers: http://leaflet-extras.github.io/leaflet- providers/preview/index.html <link rel="stylesheet" href="https://unpkg.com/leaflet@1.0.0/dist/leaflet.css" /> <script src="https://unpkg.com/leaflet@1.0.0/dist/leaflet.js"></script> <div id="map" style="width: 100%; height: 500px"></div> <script type="text/javascript" src="leaflet- providers.js"></script> <script> var map = L.map('map').setView([43.03467, -76.13754], 16); var tilelayer = new L.TileLayer.Provider("OpenStreetMap.Mapnik"); map.addLayer(tilelayer); </script> * some require registration
  • 24. Location Detection Location detection works best on mobile. <link rel="stylesheet" href="https://unpkg.com/leaflet@1.0.0/dist/leaflet.css" /> <script src="https://unpkg.com/leaflet@1.0.0/dist/leaflet.js"></script> <div id="map" style="width: 100%; height: 500px"></div> <script type="text/javascript" src="leaflet- providers.js"></script> <script> var map = L.map('map').setView([43.03467, -76.13754], 16); var tilelayer = new L.TileLayer.Provider("OpenStreetMap.Mapnik"); map.addLayer(tilelayer); function onLocationFound(e) { var radius = e.accuracy / 2; L.marker(e.latlng).addTo(map) .bindPopup("You are (approximately) here.").openPopup(); } map.on('locationfound', onLocationFound); map.locate({maxZoom: 16}); </script>
  • 25. Polygons and Markers var upgate = L.marker([43.0358, -76.13807], {icon: L.AwesomeMarkers.icon({icon: 'icon-info-sign', color: 'blue'})}).bindPopup("<strong>ESF Campus Entrance</strong><br>Visitor Entrance and Information"); var pois = L.layerGroup([upgate]); var moon = L.polygon([ [43.03498, -76.13661], [43.03498, -76.13609], [43.03446, -76.13609], [43.03446, -76.13661] ], { color: buildingFill, fillColor: buildingFill, fillOpacity: 0.5, weight: 0 }) .bindPopup("<strong>F. Franklin Moon Library</strong><br><a target='_blank' href='http://www.esf.edu/welcome/campus/moon.htm'>Campus Tour</a>");
  • 26. Finishing Touches Find your best tile layer. MapBox tiles are a great choice if you have a budget
  • 27. That’s All, Folks! Questions? Contact Information Aaron Knight Senior Programmer/Analyst Information Systems, SUNY-ESF @farktal on Twitter acknight@esf.edu Slides: www.acknight.com/speaking/ Also all of the code samples you saw today.

Editor's Notes

  1. There are plugins to improve accuracy. SetView:false broken in 1.0 Some browsers now require this to be hosted over SSL to work.
  2. MapBox tiles - free for 50k views/month, inexpensive beyond that