SlideShare a Scribd company logo
   Open Maps (Or Close Enough?)
Mapping APIs These are the top players in the (Interactive) Mapping API world. Google                 Yahoo!               Microsoft          Mapquest
Mapping APIs underlying data javascript UI library rendered tiles Basically each of those APIs have this composition, where most or all of the blocks are not “open.” provided for developer use
Mapping APIs underlying data javascript UI library rendered tiles So, to have an "Open Maps API", we need to make each of these layers open. OpenStreetMap OpenAerialMap OpenTopoMap ..other sources... OSMARender Mapnik Mapstraction OpenLayers
OpenStreetMap/OSMARender Basically a map wiki. Users trace data, upload GPS tracks, import other open data. Primarily for POIs/roads. OSMARender software is used to output tiles of data. Editing:                                             Using: underlying data rendered tiles
OpenAerialMap/OpenTopoMap A repository for satellite and physical map uploads (raster data). Blended together for unified tile output. underlying data rendered tiles
Mapnik Open source C++ software that generates map tiles from geo input formats (SHP/TIFF/PostGIS). rendered tiles
OpenLayers Open-source JS library that creates interactive maps with any tile source and adds overlays. Also designed for easy hook-up with tile generating servers. javascript UI library
Mapstraction Open-source JS library that wraps other maps APIs (Google, MS, Yahoo, OpenLayers, MapQuest, MultiMap, OpenLayers,etc). Developer can avoid vendor lock-in while abiding to ToU. javascript UI library
Possible open stacks OpenStreetMap + OSMARender OpenAerialMap OpenTopoMap OpenLayers Google Maps API OpenLayers Mapquest  API Mapstraction OpenStreetMap + OSMARender OpenAerialMap OpenTopoMap Google Maps API ESRI SHP files + PostGIS DB OpenLayers Mapnik Depending on your needs (licensing/data flexibility/pricing), you can combine the various open components for a custom stack.  Just a few permutations below...
   Mapstraction: More Detail
Mapstraction: The Basics JS Maps APIs share common features: zooming/panning map types controls overlays infowindows events Mapstraction abstracts and wraps specific implementation details.
Mapstraction:  Adding a map to your page 1. Create/size a map DIV 2. Load the Maps API JS + Mapstraction JS 3. Create + center the map <html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;> <head>     <script src=&quot;http://maps.google.com/maps?file=api&v=2&key=ABQIAA...-OUw&quot; type=&quot;text/javascript&quot;></script>     <script type=&quot;text/javascript&quot; src=&quot;../common/mapstraction.js&quot;></script>    </head>   <body>     <div id=&quot; simplemap &quot; style=&quot;width: 500px; height: 300px&quot;></div>     <script type=&quot;text/javascript&quot;>       var mapstraction = new Mapstraction(' simplemap ','google');        mapstraction.setCenterAndZoom(new LatLonPoint(43,-79), 15);      </script>   </body> </html>
Mapstraction:  Adding a marker   var marker = new Marker(new LatLonPoint(43, -79) 1. Initialise the marker marker.setInfoBubble(&quot;<b>Googleplex</b> Welcome!&quot;); 2. Make a bubble pop up when clicked mapstraction.addMarker(marker); 3. Display the marker Javascript Key: CSS HTML
Mapstraction: Looking at the code Mapstraction.prototype.setCenterAndZoom = function(point, zoom) {      var map = this.maps[this.api];      switch (this.api) {  case 'google':  case 'openstreetmap':  map.setCenter(point.toGoogle(), zoom);  break;  case 'microsoft':  map.SetCenterAndZoom(point.toMicrosoft(),zoom);  break;  case 'openlayers':  map.setCenter(point.toOpenLayers(), zoom);  break;  case 'multimap':  map.goToPosition( new MMLatLon( point.lat, point.lng ), zoom );  break;  case 'map24':  var newSettings = {};  newSettings.Latitude = point.lat*60;  newSettings.Longitude = point.lon*60;  ..... A snippet from setCenterAndZoom in the  JS:

More Related Content

Similar to Open Maps (Or Close Enough?) (20)

ODP
Rendering OpenStreetMap Data using Mapnik
Graham Jones
 
PDF
OpenStreetMap louis liu
AidIQ
 
PPT
Mashups & APIs
Pamela Fox
 
PPTX
Mapping For Sharepoint T11 Peter Smith
SpatialSmith
 
ODP
Open GeoData, Open GeoTools: An Introduction
Richard Cantwell
 
PPT
Tools Of The Geospatial Web
Michael Maclennan
 
ODP
IBM Lotus Notes Domino XPages and XPages for Mobile
Chris Toohey
 
PPTX
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Jim Tochterman
 
PDF
@Ionic native/google-maps
Masashi Katsumata
 
PPT
Mappetizer Web mapping software
RuthLang
 
PPTX
Beholding the giant pyramid of application development; why Ajax applications...
Javeline B.V.
 
PPT
MashUp Mania: How Reebok Created the Ultimate Mashup and You Can Too
Molecular Inc
 
PDF
Event Visualization with OpenStreetMap Data, Interdisciplinary Project
Bibek Shrestha
 
PPT
Map Styling Tools and Interactive maps on the web with OpenLayers - Addy Pope...
JISC GECO
 
ODP
Routing plugin for JOSM
Juangui Jordán
 
PPT
Google Geo APIs Overview
Ossama Alami
 
PDF
II-SDV 2015, 21 - 21 April, in Nice
Dr. Haxel Consult
 
PPT
Building real-time collaborative apps with Ajax.org Platform
Javeline B.V.
 
PDF
Volunteered Geographic Information and OpenStreetMap
chippy
 
PPT
Open Source GIS
Joe Larson
 
Rendering OpenStreetMap Data using Mapnik
Graham Jones
 
OpenStreetMap louis liu
AidIQ
 
Mashups & APIs
Pamela Fox
 
Mapping For Sharepoint T11 Peter Smith
SpatialSmith
 
Open GeoData, Open GeoTools: An Introduction
Richard Cantwell
 
Tools Of The Geospatial Web
Michael Maclennan
 
IBM Lotus Notes Domino XPages and XPages for Mobile
Chris Toohey
 
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Jim Tochterman
 
@Ionic native/google-maps
Masashi Katsumata
 
Mappetizer Web mapping software
RuthLang
 
Beholding the giant pyramid of application development; why Ajax applications...
Javeline B.V.
 
MashUp Mania: How Reebok Created the Ultimate Mashup and You Can Too
Molecular Inc
 
Event Visualization with OpenStreetMap Data, Interdisciplinary Project
Bibek Shrestha
 
Map Styling Tools and Interactive maps on the web with OpenLayers - Addy Pope...
JISC GECO
 
Routing plugin for JOSM
Juangui Jordán
 
Google Geo APIs Overview
Ossama Alami
 
II-SDV 2015, 21 - 21 April, in Nice
Dr. Haxel Consult
 
Building real-time collaborative apps with Ajax.org Platform
Javeline B.V.
 
Volunteered Geographic Information and OpenStreetMap
chippy
 
Open Source GIS
Joe Larson
 

More from Pamela Fox (20)

PDF
Teaching Programming Online
Pamela Fox
 
PDF
Engineering culture
Pamela Fox
 
KEY
Django Admin: Widgetry & Witchery
Pamela Fox
 
PDF
A Year of Hermit Hacking
Pamela Fox
 
PDF
The Developer Experience
Pamela Fox
 
PDF
Making JavaScript Libraries More Approachable
Pamela Fox
 
PPT
How I became a born again vegetable-tarian
Pamela Fox
 
KEY
The Developer Experience
Pamela Fox
 
PPT
No, Really, I'm Shy
Pamela Fox
 
PPT
Writing Apps the Google-y Way (Brisbane)
Pamela Fox
 
PPT
Writing Apps the Google-y Way
Pamela Fox
 
PPT
The Wonders of the "Onesie"
Pamela Fox
 
PPT
I’M A Barbie Girl In A CS World
Pamela Fox
 
PPT
Google Wave 20/20: Product, Protocol, Platform
Pamela Fox
 
PPT
Collaborative Mapping with Google Wave
Pamela Fox
 
PPT
Google Products: Deep Dive on Google Maps
Pamela Fox
 
PPT
Google Products & Google Maps
Pamela Fox
 
PPT
A World of Words
Pamela Fox
 
PPT
Web APIs & Google APIs
Pamela Fox
 
PPT
Growing up Geek: My Dad, the Computer Scientist
Pamela Fox
 
Teaching Programming Online
Pamela Fox
 
Engineering culture
Pamela Fox
 
Django Admin: Widgetry & Witchery
Pamela Fox
 
A Year of Hermit Hacking
Pamela Fox
 
The Developer Experience
Pamela Fox
 
Making JavaScript Libraries More Approachable
Pamela Fox
 
How I became a born again vegetable-tarian
Pamela Fox
 
The Developer Experience
Pamela Fox
 
No, Really, I'm Shy
Pamela Fox
 
Writing Apps the Google-y Way (Brisbane)
Pamela Fox
 
Writing Apps the Google-y Way
Pamela Fox
 
The Wonders of the "Onesie"
Pamela Fox
 
I’M A Barbie Girl In A CS World
Pamela Fox
 
Google Wave 20/20: Product, Protocol, Platform
Pamela Fox
 
Collaborative Mapping with Google Wave
Pamela Fox
 
Google Products: Deep Dive on Google Maps
Pamela Fox
 
Google Products & Google Maps
Pamela Fox
 
A World of Words
Pamela Fox
 
Web APIs & Google APIs
Pamela Fox
 
Growing up Geek: My Dad, the Computer Scientist
Pamela Fox
 
Ad

Recently uploaded (20)

PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
introduction to computer hardware and sofeware
chauhanshraddha2007
 
PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
Per Axbom: The spectacular lies of maps
Nexer Digital
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PPTX
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PPTX
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
introduction to computer hardware and sofeware
chauhanshraddha2007
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Per Axbom: The spectacular lies of maps
Nexer Digital
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Ad

Open Maps (Or Close Enough?)

  • 1.    Open Maps (Or Close Enough?)
  • 2. Mapping APIs These are the top players in the (Interactive) Mapping API world. Google                 Yahoo!               Microsoft          Mapquest
  • 3. Mapping APIs underlying data javascript UI library rendered tiles Basically each of those APIs have this composition, where most or all of the blocks are not “open.” provided for developer use
  • 4. Mapping APIs underlying data javascript UI library rendered tiles So, to have an &quot;Open Maps API&quot;, we need to make each of these layers open. OpenStreetMap OpenAerialMap OpenTopoMap ..other sources... OSMARender Mapnik Mapstraction OpenLayers
  • 5. OpenStreetMap/OSMARender Basically a map wiki. Users trace data, upload GPS tracks, import other open data. Primarily for POIs/roads. OSMARender software is used to output tiles of data. Editing:                                             Using: underlying data rendered tiles
  • 6. OpenAerialMap/OpenTopoMap A repository for satellite and physical map uploads (raster data). Blended together for unified tile output. underlying data rendered tiles
  • 7. Mapnik Open source C++ software that generates map tiles from geo input formats (SHP/TIFF/PostGIS). rendered tiles
  • 8. OpenLayers Open-source JS library that creates interactive maps with any tile source and adds overlays. Also designed for easy hook-up with tile generating servers. javascript UI library
  • 9. Mapstraction Open-source JS library that wraps other maps APIs (Google, MS, Yahoo, OpenLayers, MapQuest, MultiMap, OpenLayers,etc). Developer can avoid vendor lock-in while abiding to ToU. javascript UI library
  • 10. Possible open stacks OpenStreetMap + OSMARender OpenAerialMap OpenTopoMap OpenLayers Google Maps API OpenLayers Mapquest  API Mapstraction OpenStreetMap + OSMARender OpenAerialMap OpenTopoMap Google Maps API ESRI SHP files + PostGIS DB OpenLayers Mapnik Depending on your needs (licensing/data flexibility/pricing), you can combine the various open components for a custom stack.  Just a few permutations below...
  • 12. Mapstraction: The Basics JS Maps APIs share common features: zooming/panning map types controls overlays infowindows events Mapstraction abstracts and wraps specific implementation details.
  • 13. Mapstraction: Adding a map to your page 1. Create/size a map DIV 2. Load the Maps API JS + Mapstraction JS 3. Create + center the map <html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;> <head>     <script src=&quot;http://maps.google.com/maps?file=api&v=2&key=ABQIAA...-OUw&quot; type=&quot;text/javascript&quot;></script>     <script type=&quot;text/javascript&quot; src=&quot;../common/mapstraction.js&quot;></script>    </head>   <body>     <div id=&quot; simplemap &quot; style=&quot;width: 500px; height: 300px&quot;></div>     <script type=&quot;text/javascript&quot;>       var mapstraction = new Mapstraction(' simplemap ','google');        mapstraction.setCenterAndZoom(new LatLonPoint(43,-79), 15);      </script>   </body> </html>
  • 14. Mapstraction: Adding a marker   var marker = new Marker(new LatLonPoint(43, -79) 1. Initialise the marker marker.setInfoBubble(&quot;<b>Googleplex</b> Welcome!&quot;); 2. Make a bubble pop up when clicked mapstraction.addMarker(marker); 3. Display the marker Javascript Key: CSS HTML
  • 15. Mapstraction: Looking at the code Mapstraction.prototype.setCenterAndZoom = function(point, zoom) {      var map = this.maps[this.api];      switch (this.api) { case 'google': case 'openstreetmap': map.setCenter(point.toGoogle(), zoom); break; case 'microsoft': map.SetCenterAndZoom(point.toMicrosoft(),zoom); break; case 'openlayers': map.setCenter(point.toOpenLayers(), zoom); break; case 'multimap': map.goToPosition( new MMLatLon( point.lat, point.lng ), zoom ); break; case 'map24': var newSettings = {}; newSettings.Latitude = point.lat*60; newSettings.Longitude = point.lon*60; ..... A snippet from setCenterAndZoom in the JS: