SlideShare a Scribd company logo
Map overlays for fun and profit
(or how to break Google Maps)
Tom Parker
palfrey@tevp.net
@palfrey
Why did I do this?
What is KML?
● “Keyhole Markup Language (KML) is an XML schema for
expressing geographic annotation and visualization within
Internet-based, two-dimensional maps and three-dimensional
Earth browsers. KML was developed for use with Google Earth,
which was originally named Keyhole Earth Viewer. It was
created by Keyhole, Inc, which was acquired by Google in
2004...” - Wikipedia
● Blah, blah, blah
● You can use it to make overlays for Google
Maps so you can show more information
What you need
● Big spec (tl; dr)
● This is all you need
You also need data!
● http://borisapi.heroku.com/
Into Google Maps
● Goto “My maps”
● “Create new map”
● “Import” - hand it the KML you just made
● Profit!
● Alternately, do a search on “User-created maps”
● Find one
● Click “Save to My Maps”
Useful?
● Kinda fun in browser
● More fun in Android
● Overlays
● “More Layers”
● “My Maps”
Back to the original idea...
Streetcar
● More data sources wanted
● Tried Streetcar
Streetcar data
● Dug through web frontend, found
http://www.streetcar.co.uk/LocationsXml.xml
● Can make KML from this :)
Link ATMs
● Website has a search
system, but not very
mobile friendly...
● Some work with
Firebug later, we can
get the data directly :)
Google map limits
● Only part of the Link data was coming up :(
● Built a stress-tester
● Meant to show a square grid of points
Varying results
● 19x19 grid
● Left is desktop, right is Android...
What now?
● Need a better Google maps interface
● Partial loading of arbitrary maps
● Might be able to work around the issues....
https://github.com/palfrey/kml-generators

More Related Content

Similar to Map overlays for fun and profit (Or, how to break Google Maps)

Create Your KML File by KML Editor
Create Your KML File by KML EditorCreate Your KML File by KML Editor
Create Your KML File by KML Editor
wang yaohui
 
Google Earth as a GIS
Google Earth as a GISGoogle Earth as a GIS
Google Earth as a GIS
Graeme Eyre
 
Visualizing Your Cause In Google Earth Maps @ NTC 2010
Visualizing Your Cause In Google Earth Maps @ NTC 2010Visualizing Your Cause In Google Earth Maps @ NTC 2010
Visualizing Your Cause In Google Earth Maps @ NTC 2010
googlenten
 
Google technologies
Google technologiesGoogle technologies
Google technologies
Vaibhav Verma
 
Google earth user_guide
Google earth user_guideGoogle earth user_guide
Google earth user_guide
sami horchani
 
Google Maps bakes the crust, you add the toppings
Google Maps bakes the crust, you add the toppingsGoogle Maps bakes the crust, you add the toppings
Google Maps bakes the crust, you add the toppings
Nael El Shawwa
 
Google earth preso
Google earth presoGoogle earth preso
Google earth preso
Mark Labouchere
 
Google Next
Google NextGoogle Next
Google Next
Gregory Wilde
 
Google Tools 2015
Google Tools 2015Google Tools 2015
Google Tools 2015
Duane Wilkins
 
Extending google earth presentation
Extending google earth presentationExtending google earth presentation
Extending google earth presentation
Ronak Adeshara
 

Similar to Map overlays for fun and profit (Or, how to break Google Maps) (10)

Create Your KML File by KML Editor
Create Your KML File by KML EditorCreate Your KML File by KML Editor
Create Your KML File by KML Editor
 
Google Earth as a GIS
Google Earth as a GISGoogle Earth as a GIS
Google Earth as a GIS
 
Visualizing Your Cause In Google Earth Maps @ NTC 2010
Visualizing Your Cause In Google Earth Maps @ NTC 2010Visualizing Your Cause In Google Earth Maps @ NTC 2010
Visualizing Your Cause In Google Earth Maps @ NTC 2010
 
Google technologies
Google technologiesGoogle technologies
Google technologies
 
Google earth user_guide
Google earth user_guideGoogle earth user_guide
Google earth user_guide
 
Google Maps bakes the crust, you add the toppings
Google Maps bakes the crust, you add the toppingsGoogle Maps bakes the crust, you add the toppings
Google Maps bakes the crust, you add the toppings
 
Google earth preso
Google earth presoGoogle earth preso
Google earth preso
 
Google Next
Google NextGoogle Next
Google Next
 
Google Tools 2015
Google Tools 2015Google Tools 2015
Google Tools 2015
 
Extending google earth presentation
Extending google earth presentationExtending google earth presentation
Extending google earth presentation
 

Recently uploaded

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
FODUU
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 

Recently uploaded (20)

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 

Map overlays for fun and profit (Or, how to break Google Maps)

  • 1. Map overlays for fun and profit (or how to break Google Maps) Tom Parker palfrey@tevp.net @palfrey
  • 2. Why did I do this?
  • 3. What is KML? ● “Keyhole Markup Language (KML) is an XML schema for expressing geographic annotation and visualization within Internet-based, two-dimensional maps and three-dimensional Earth browsers. KML was developed for use with Google Earth, which was originally named Keyhole Earth Viewer. It was created by Keyhole, Inc, which was acquired by Google in 2004...” - Wikipedia ● Blah, blah, blah ● You can use it to make overlays for Google Maps so you can show more information
  • 4. What you need ● Big spec (tl; dr) ● This is all you need
  • 5. You also need data! ● http://borisapi.heroku.com/
  • 6. Into Google Maps ● Goto “My maps” ● “Create new map” ● “Import” - hand it the KML you just made ● Profit! ● Alternately, do a search on “User-created maps” ● Find one ● Click “Save to My Maps”
  • 7. Useful? ● Kinda fun in browser ● More fun in Android ● Overlays ● “More Layers” ● “My Maps”
  • 8. Back to the original idea...
  • 9. Streetcar ● More data sources wanted ● Tried Streetcar
  • 10. Streetcar data ● Dug through web frontend, found http://www.streetcar.co.uk/LocationsXml.xml ● Can make KML from this :)
  • 11. Link ATMs ● Website has a search system, but not very mobile friendly... ● Some work with Firebug later, we can get the data directly :)
  • 12. Google map limits ● Only part of the Link data was coming up :( ● Built a stress-tester ● Meant to show a square grid of points
  • 13. Varying results ● 19x19 grid ● Left is desktop, right is Android...
  • 14. What now? ● Need a better Google maps interface ● Partial loading of arbitrary maps ● Might be able to work around the issues.... https://github.com/palfrey/kml-generators