SlideShare uma empresa Scribd logo
1 de 55
Maps & Maps
      and

Scale &   Scale
Lori M Olson

@wndxlori

http://wndx.posterous.com
                            Photo Credit: @etrever
Maps are Easy
   Right?
Small numbers < 1k
Including Details
More data?

limit numbers
Paging
What kinds of
Scale problems?
Datatypes
Markers
Polylines
Polygons
Complications
Data exceeds 10k
Discontiguous
  segments
Multiplicative factors
1000 polylines * 100
    segments/line
= 100,000 map items!!!
Size variations
Discontiguous parts
Donuts!
Land lease
  with donut
Maybe Not So Easy?
No Code Generation!
Serious Complications
Data exceeds 100k
Hundreds of Thousands
Millions of line segments
Hundreds of Thousands (again)
Event handling
Network latency
Solutions
Data doesn’t change?
       TILE
Without and with the grid line tiles
Aggregation
Aggregate wells to fields
Limit data transfer size
On-demand Details
Clustering
Server clusters
Analytic functions -
      NTILE
NTILE and group by lat/
        long.
Counts!
Client-side
Levels & Cells & Caching
Polyline encoding
Zoom filtering
Cutoffs
Zoom Gotchas
Screen resolution
24” Cinema Display
iPad
WIMBY2
Wells In My Back Yard
http://wimby2.herokuapp.com

https://github.com/wndxlori/wimby2
Thanks!
@wndxlori

Mais conteúdo relacionado

Semelhante a Maps and Scale

Exor e top504_specsheet
Exor e top504_specsheetExor e top504_specsheet
Exor e top504_specsheetElectromate
 
15 shades of fvertica
15 shades of fvertica15 shades of fvertica
15 shades of fverticaZvika Gutkin
 
Recent trends and bio-mimics in computer science
Recent trends and bio-mimics in computer scienceRecent trends and bio-mimics in computer science
Recent trends and bio-mimics in computer scienceRamesh Kumar
 
Decimal arithmetic in Processors
Decimal arithmetic in ProcessorsDecimal arithmetic in Processors
Decimal arithmetic in ProcessorsPeeyush Pashine
 
Energy Efficient Mobile Applications with Mobile Cloud Computing ( MCC )
Energy Efficient Mobile Applications with Mobile Cloud Computing ( MCC )Energy Efficient Mobile Applications with Mobile Cloud Computing ( MCC )
Energy Efficient Mobile Applications with Mobile Cloud Computing ( MCC )Anand Bhojan
 
Exor e top513_specsheet
Exor e top513_specsheetExor e top513_specsheet
Exor e top513_specsheetElectromate
 
Track e magma redefining mixed so c chipex2011 - magma da
Track e  magma redefining mixed so c chipex2011 - magma daTrack e  magma redefining mixed so c chipex2011 - magma da
Track e magma redefining mixed so c chipex2011 - magma dachiportal
 
Exor e top515_specsheet
Exor e top515_specsheetExor e top515_specsheet
Exor e top515_specsheetElectromate
 
IFML - Internet of Things and Internet of People: The Role of User Interactio...
IFML - Internet of Things and Internet of People: The Role of User Interactio...IFML - Internet of Things and Internet of People: The Role of User Interactio...
IFML - Internet of Things and Internet of People: The Role of User Interactio...Marco Brambilla
 
Big Data : Bits of History, Words of Advice
Big Data : Bits of History, Words of AdviceBig Data : Bits of History, Words of Advice
Big Data : Bits of History, Words of AdviceVenu Vasudevan
 
#EricssonTechDay Brasil 2018 - Grow with IoT and 5G
#EricssonTechDay Brasil 2018 - Grow with IoT and 5G#EricssonTechDay Brasil 2018 - Grow with IoT and 5G
#EricssonTechDay Brasil 2018 - Grow with IoT and 5GEricsson Latin America
 

Semelhante a Maps and Scale (12)

Exor e top504_specsheet
Exor e top504_specsheetExor e top504_specsheet
Exor e top504_specsheet
 
15 shades of fvertica
15 shades of fvertica15 shades of fvertica
15 shades of fvertica
 
Recent trends and bio-mimics in computer science
Recent trends and bio-mimics in computer scienceRecent trends and bio-mimics in computer science
Recent trends and bio-mimics in computer science
 
Decimal arithmetic in Processors
Decimal arithmetic in ProcessorsDecimal arithmetic in Processors
Decimal arithmetic in Processors
 
Energy Efficient Mobile Applications with Mobile Cloud Computing ( MCC )
Energy Efficient Mobile Applications with Mobile Cloud Computing ( MCC )Energy Efficient Mobile Applications with Mobile Cloud Computing ( MCC )
Energy Efficient Mobile Applications with Mobile Cloud Computing ( MCC )
 
Exor e top513_specsheet
Exor e top513_specsheetExor e top513_specsheet
Exor e top513_specsheet
 
Track e magma redefining mixed so c chipex2011 - magma da
Track e  magma redefining mixed so c chipex2011 - magma daTrack e  magma redefining mixed so c chipex2011 - magma da
Track e magma redefining mixed so c chipex2011 - magma da
 
Exor e top515_specsheet
Exor e top515_specsheetExor e top515_specsheet
Exor e top515_specsheet
 
Tero kivisaari telia_sonera_eng
Tero  kivisaari telia_sonera_engTero  kivisaari telia_sonera_eng
Tero kivisaari telia_sonera_eng
 
IFML - Internet of Things and Internet of People: The Role of User Interactio...
IFML - Internet of Things and Internet of People: The Role of User Interactio...IFML - Internet of Things and Internet of People: The Role of User Interactio...
IFML - Internet of Things and Internet of People: The Role of User Interactio...
 
Big Data : Bits of History, Words of Advice
Big Data : Bits of History, Words of AdviceBig Data : Bits of History, Words of Advice
Big Data : Bits of History, Words of Advice
 
#EricssonTechDay Brasil 2018 - Grow with IoT and 5G
#EricssonTechDay Brasil 2018 - Grow with IoT and 5G#EricssonTechDay Brasil 2018 - Grow with IoT and 5G
#EricssonTechDay Brasil 2018 - Grow with IoT and 5G
 

Mais de Lori Olson

Core Data in RubyMotion #inspect
Core Data in RubyMotion #inspectCore Data in RubyMotion #inspect
Core Data in RubyMotion #inspectLori Olson
 
Core Data in Motion
Core Data in MotionCore Data in Motion
Core Data in MotionLori Olson
 
Rockstars & Consultants, who needs 'em
Rockstars & Consultants, who needs 'emRockstars & Consultants, who needs 'em
Rockstars & Consultants, who needs 'emLori Olson
 
RubyMotion Introduction
RubyMotion IntroductionRubyMotion Introduction
RubyMotion IntroductionLori Olson
 
Rockstars & Consultants - who needs 'em
Rockstars & Consultants - who needs 'emRockstars & Consultants - who needs 'em
Rockstars & Consultants - who needs 'emLori Olson
 
Powerful UX, not just for desktops anymore
Powerful UX, not just for desktops anymorePowerful UX, not just for desktops anymore
Powerful UX, not just for desktops anymoreLori Olson
 

Mais de Lori Olson (9)

Core Data in RubyMotion #inspect
Core Data in RubyMotion #inspectCore Data in RubyMotion #inspect
Core Data in RubyMotion #inspect
 
Do The Work
Do The WorkDo The Work
Do The Work
 
Core Data in Motion
Core Data in MotionCore Data in Motion
Core Data in Motion
 
Rockstars & Consultants, who needs 'em
Rockstars & Consultants, who needs 'emRockstars & Consultants, who needs 'em
Rockstars & Consultants, who needs 'em
 
RubyMotion Introduction
RubyMotion IntroductionRubyMotion Introduction
RubyMotion Introduction
 
Mobile rage
Mobile rageMobile rage
Mobile rage
 
Rails 3.1
Rails 3.1Rails 3.1
Rails 3.1
 
Rockstars & Consultants - who needs 'em
Rockstars & Consultants - who needs 'emRockstars & Consultants - who needs 'em
Rockstars & Consultants - who needs 'em
 
Powerful UX, not just for desktops anymore
Powerful UX, not just for desktops anymorePowerful UX, not just for desktops anymore
Powerful UX, not just for desktops anymore
 

Último

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Último (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Notas do Editor

  1. \n
  2. \n
  3. $geo makes it all looks so easy, right?\n
  4. Easy maps are easy\n
  5. Including detail data for display, when items are clicked\n
  6. Google &amp; Bing used to have problems with &gt; 100 items (markers, lines, polygons) on the map. Limit the numbers displayed to avoid. \n
  7. But if you limit the numbers of things you display on the map, then you need to page to additional items.\n
  8. \n
  9. Now, lets talk about the scale problems you can run into, when building at complex GIS on the web\n
  10. Not just markers, but lots of data types on the same map\n
  11. Point locations (wells, facilities)\n
  12. Pipelines, roads, trails, routes\n
  13. Land leases, buildings, counties, park boundaries\n
  14. \n
  15. What does that mean anyway? In the context of a web application, that is one hell of a lot of data to sling from the server to the client, and imagine the network latency...\n
  16. This happens when your polylines have discontinuities, or gaps\n
  17. \n
  18. The finer grain the data, the more &amp;#x201C;things&amp;#x201D; you are adding to your map.\n
  19. On your polygons, you may have size variations that don&amp;#x2019;t display well at varying zoom levels. For example, when you zoom out, the polygons become dots of color, lost on the map\n
  20. Land leases can consist of multiple separate areas; How do you handle clicks? The different areas need to respond as one.\n
  21. Some leases will have holes cut out of the middle.\n
  22. \n
  23. So, this is starting to look not so easy any more, isn&amp;#x2019;t it?\n\nLibraries that sit between you and your library (Google/Bing), are, at these levels of complexity, just going to get in your way. So, get down and understand your mapping library API, IN DETAIL.\n
  24. Make certain that your library (ym4r, etc), doesn&amp;#x2019;t generate Javascript. That never ends well. Supply data to your map via Ajax and json\n
  25. \n
  26. \n
  27. \n
  28. With 2.5 million segments\n
  29. \n
  30. When people pan and zoom on your map, if you continue to re-load, you can beat up your server. \n
  31. Data size, distance are all going to affect the performance\n
  32. What kind of solutions?\n
  33. Images. Massive amounts of data, but ... cheap to store on Amazon S3, cheap to generate using Elastic Cloud\n
  34. \n
  35. Is there a higher level item that can represent a group of items? Counties? States? For our data, wells generally belong to fields, so we can present fields at higher zoom levels.\n
  36. \n
  37. Id for lookup (when needed/clicked on), display, marker, location, reduce the size of your JSON by using single letter keys\n
  38. \n
  39. Google has the Marker Clusterer and the Marker Manager. Which is great, managing data up to about 10K. But, what about &gt; 100K?\n
  40. Server side clustering... really, it&amp;#x2019;s the only solution. You can&amp;#x2019;t throw 100K of data around between the server and the browser. You have to figure out how to reduce the data on the server side.\n
  41. You make have never used an analytic function. They are present in most databases - Oracle, SQL Server, PostgreSQL specifically have NTILE. (Not MySQL, sorry)\n\n\n
  42. NTILE can partition your query into buckets. Group by the data by the lat/long buckets, voila!\n
  43. Remember to include the counts for your server side clusters. We modified the MarkerClusterer to under stand cluster data.\n
  44. \n
  45. I call them cells to differentiate from (static) tiles. Cells are like tiles, but dynamically populated (and cached) by AJAX calls to the server.\n
  46. So, that was a lot about marker, what about polylines? Google now includes polyline encoding by default, but for massive numbers of segments, you will still have data size/latency issues.\n
  47. Reduce data on the server side by filtering on sizes/lengths or some other attribute that makes sense. We do pipe diameter and pipe length filtering.\n\nThere are some drawbacks. The polylines get suspiciously regular when filtered this way. Currently investigating a more sophisticated solution.\n
  48. At some levels, you just can&amp;#x2019;t display the data effectively. For Land, the leases become very small at higher zoom levels. At that point, which switch to another layer, and display land markers. \n\nBut sometimes you just need to post a message that says &amp;#x201C;zoom in to see data&amp;#x201D;\n
  49. \n
  50. This is a major gotcha. Calculating the number of items that will appear on the map will vary, depending on your screen resolution\n
  51. At zoom level X - you see Y number of states/provinces\n
  52. At zoom level X - you see a greatly reduced set.\n
  53. My main app - eTriever, is not publicly available, but WIMBY is. Wells In My Back Yard.\n
  54. \n
  55. \n