Optimize map renderer !

Aurore Jard
Aurore JardLead developer iOS/Android chez Nurun at Nurun
Proprietary and
confidential
Aurore Jard
Mobile Lead Developer
“Design for tomorrow”
“Deconstruct what you know”
“Simplify”
“Love what you did”
@AuroreJard
April 12, 2016
Don’t lose your way optimizing
maps rendering !
Talk : map optimizations ! Confidential
Requirements
Confidential
● Display
○ Data as locality
○ Zone on map
● User feature
○ Move
○ Zoom
● Access offline
Talk : map optimizations !
SDK Fight
Confidential
● Map
○ https://developer.apple.com/maps/
● Google
○ https://developers.google.com/maps/documentation/ios-sdk/
Talk : map optimizations !
Google Map VS Apple Maps
SDK Fight
Confidential
● Official documentation
○ Maps
○ Google iOS SDK
● Application also available on android : same experience on both
● Map more precise
● More possibilities
Talk : map optimizations !
First : easy steps
Confidential
● Get Data
● Display data
Talk : map optimizations !
What about really a lot of data ?
ConfidentialTalk : map optimizations !
First impressions
Confidential
● UI/UX remarks
○ Users are humans !
■ Adapt data according to zoom level
■ Zone, details : only on high level of zoom
■ Regroup data that eye can dissociate
● Performances
○ Avoid treating data you don’t see...
Talk : map optimizations !
First : clustering
ConfidentialTalk : map optimizations !
First : clustering
Confidential
● Regroup close data
○ easier user reading
○ Indication on number of location
in one group
● Clustering possibilities :
○ Grid based clustering
○ Distance based clustering
Talk : map optimizations !
Easy optimizations :
Confidential
● Grid based clustering
Talk : map optimizations !
Easy optimizations :
Confidential
● Distance-based Clustering
Talk : map optimizations !
Second : don’t treat invisible data
Confidential
● Limitation :
○ Zoom level
Talk : map optimizations !
Third : More optimization on sorting data
Confidential
● Why does it take so long ?
● Iterate over each location : 0(n)
● Every move from the camera (move, zoom) need to iterate again
Talk : map optimizations !
for location in locations {
if visibleBounds.containsCoordinate(location.position) {
// item should be display
}
else {
// ignore this location
}
Third : More optimization on sorting data
Confidential
● Reduce complexity by using QuadTree object & algorithms !
● Objective : subdivision of 2D space
● QuadTree = Tree with 4 leafs
Talk : map optimizations !
Third : More optimization on sorting data
Confidential
● Step 1 :
○ Build the tree from your initial data
○ Keep iteration on all locations on that process
■ o(n) but only once
Talk : map optimizations !
Third : More optimization on sorting data
Confidential
● Step 2 :
○ Search for locations in a specific area
■ Everytime you move / zoom
Talk : map optimizations !
Third : More optimization on sorting data
Confidential
● Why is it faster ?
○ For loop only done once at initialisation
○ Search then (user interactions)
■ O(h) (h = max depth of node in the tree)
Talk : map optimizations !
h=0
h=1
h=2
h=3
Links / Resources
Confidential
● Code :
○ Open Source library for clustering with Google Map iOS SDK
○ Display Large Amount of Data on iOS Map
● MapKit Apple Sample
○ Apple Sample clustering
● Other
○ QuadTree Interactive Explanations
Talk : map optimizations !
Have fun with maps ;)
Thanks !
ConfidentialTalk : map optimizations !
Proprietary and
confidential
@NurunMTL
CURIOUS TO KNOW MORE
Follow us
Nurun.com/NurunMontreal
1 of 21

Recommended

Google earth by
Google earthGoogle earth
Google earthPRESENTATIONSFORESL
1.5K views14 slides
Google Earth by
Google EarthGoogle Earth
Google Earthbananagrl6913
2.5K views9 slides
Google earth by
Google earthGoogle earth
Google earthkondalarao7
4.4K views22 slides
Yet Another Solar System by
Yet Another Solar SystemYet Another Solar System
Yet Another Solar SystemÁlison Fernandes
890 views14 slides
Of Nodes and Maps (Web Mapping with Drupal - Part II) by
Of Nodes and Maps (Web Mapping with Drupal - Part II)Of Nodes and Maps (Web Mapping with Drupal - Part II)
Of Nodes and Maps (Web Mapping with Drupal - Part II)Ranel Padon
9.4K views136 slides
Google earth preso by
Google earth presoGoogle earth preso
Google earth presoMark Labouchere
1.6K views17 slides

More Related Content

What's hot

JavaScript 3D House by
JavaScript 3D HouseJavaScript 3D House
JavaScript 3D Housecarey2101a
1.5K views10 slides
Web Mapping with Drupal by
Web Mapping with DrupalWeb Mapping with Drupal
Web Mapping with DrupalRanel Padon
13.5K views94 slides
Easily Create Maps in Drupal with Leaflet by
Easily Create Maps in Drupal with LeafletEasily Create Maps in Drupal with Leaflet
Easily Create Maps in Drupal with LeafletAmber Matz
5.8K views21 slides
Google earth power point by
Google earth power pointGoogle earth power point
Google earth power pointLisa Campbell
18.7K views41 slides
Google Earth Slides by
Google Earth SlidesGoogle Earth Slides
Google Earth SlidesCMDMcDoogle
3.6K views12 slides
Navigating 3D information space with 6 degree of freedom devices by
Navigating 3D information space with 6 degree of freedom devicesNavigating 3D information space with 6 degree of freedom devices
Navigating 3D information space with 6 degree of freedom devicesKai-Tzu Lu
425 views16 slides

What's hot(17)

JavaScript 3D House by carey2101a
JavaScript 3D HouseJavaScript 3D House
JavaScript 3D House
carey2101a1.5K views
Web Mapping with Drupal by Ranel Padon
Web Mapping with DrupalWeb Mapping with Drupal
Web Mapping with Drupal
Ranel Padon13.5K views
Easily Create Maps in Drupal with Leaflet by Amber Matz
Easily Create Maps in Drupal with LeafletEasily Create Maps in Drupal with Leaflet
Easily Create Maps in Drupal with Leaflet
Amber Matz5.8K views
Google earth power point by Lisa Campbell
Google earth power pointGoogle earth power point
Google earth power point
Lisa Campbell18.7K views
Google Earth Slides by CMDMcDoogle
Google Earth SlidesGoogle Earth Slides
Google Earth Slides
CMDMcDoogle3.6K views
Navigating 3D information space with 6 degree of freedom devices by Kai-Tzu Lu
Navigating 3D information space with 6 degree of freedom devicesNavigating 3D information space with 6 degree of freedom devices
Navigating 3D information space with 6 degree of freedom devices
Kai-Tzu Lu425 views
Google Earth Presentation by abc
Google Earth PresentationGoogle Earth Presentation
Google Earth Presentation
abc1.1K views
Google Earth Social Studies by damopsu
Google Earth Social StudiesGoogle Earth Social Studies
Google Earth Social Studies
damopsu1.3K views
From open geographical data to tangible maps: improving the accessibility of ... by GeoVIS'15 Workshop
From open geographical data to tangible maps: improving the accessibility of ...From open geographical data to tangible maps: improving the accessibility of ...
From open geographical data to tangible maps: improving the accessibility of ...
GeoVIS'15 Workshop451 views
Location awareness in MeeGo by Henri Bergius
Location awareness in MeeGoLocation awareness in MeeGo
Location awareness in MeeGo
Henri Bergius596 views
ToPa 3D - Services by ToPa 3D
ToPa 3D - ServicesToPa 3D - Services
ToPa 3D - Services
ToPa 3D90 views

Viewers also liked

Taller livetrackingandroid by
Taller livetrackingandroidTaller livetrackingandroid
Taller livetrackingandroidsantiagohiguera
381 views29 slides
Un atlas en la palma de la mano by
Un atlas en la palma de la manoUn atlas en la palma de la mano
Un atlas en la palma de la manoJose Manuel Pereira Garcia
1.8K views16 slides
Taller mapsforge by
Taller mapsforgeTaller mapsforge
Taller mapsforgesantiagohiguera
2.1K views23 slides
Calculator 5 by
Calculator 5Calculator 5
Calculator 5livecode
635 views12 slides
[Android devcamp] Android Bootcamp – 2012 by
[Android devcamp] Android Bootcamp – 2012[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012Douglas Drumond
2K views92 slides
Calculator 1 by
Calculator 1Calculator 1
Calculator 1livecode
1.1K views20 slides

Viewers also liked(8)

Similar to Optimize map renderer !

Maps and Apps by
Maps and AppsMaps and Apps
Maps and AppsAddy Pope
1.3K views42 slides
5 Ways to Improve Your LiDAR Workflows by
5 Ways to Improve Your LiDAR Workflows5 Ways to Improve Your LiDAR Workflows
5 Ways to Improve Your LiDAR WorkflowsSafe Software
1.8K views55 slides
MapInfo Professional 12.5 and Discover3D 2014 - A brief overview by
MapInfo Professional 12.5 and Discover3D 2014 - A brief overviewMapInfo Professional 12.5 and Discover3D 2014 - A brief overview
MapInfo Professional 12.5 and Discover3D 2014 - A brief overviewPrakher Hajela Saxena
4K views64 slides
OpenStreetMap : Open Licensed GeoData by
OpenStreetMap : Open Licensed GeoDataOpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoDataHarry Wood
924 views121 slides
OpenStreetMap : Open Licensed GeoData by
OpenStreetMap : Open Licensed GeoDataOpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoDatagssg
619 views121 slides
Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult... by
Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...
Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...Luiz Henrique Zambom Santana
99 views42 slides

Similar to Optimize map renderer !(20)

Maps and Apps by Addy Pope
Maps and AppsMaps and Apps
Maps and Apps
Addy Pope1.3K views
5 Ways to Improve Your LiDAR Workflows by Safe Software
5 Ways to Improve Your LiDAR Workflows5 Ways to Improve Your LiDAR Workflows
5 Ways to Improve Your LiDAR Workflows
Safe Software1.8K views
MapInfo Professional 12.5 and Discover3D 2014 - A brief overview by Prakher Hajela Saxena
MapInfo Professional 12.5 and Discover3D 2014 - A brief overviewMapInfo Professional 12.5 and Discover3D 2014 - A brief overview
MapInfo Professional 12.5 and Discover3D 2014 - A brief overview
OpenStreetMap : Open Licensed GeoData by Harry Wood
OpenStreetMap : Open Licensed GeoDataOpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoData
Harry Wood924 views
OpenStreetMap : Open Licensed GeoData by gssg
OpenStreetMap : Open Licensed GeoDataOpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoData
gssg619 views
Preparing LiDAR for Use in ArcGIS 10.1 with the Data Interoperability Extension by Safe Software
Preparing LiDAR for Use in ArcGIS 10.1 with the Data Interoperability ExtensionPreparing LiDAR for Use in ArcGIS 10.1 with the Data Interoperability Extension
Preparing LiDAR for Use in ArcGIS 10.1 with the Data Interoperability Extension
Safe Software4.4K views
ArcGIS Data Interoperability: Tips for LiDAR, 3D, and BIM by Safe Software
ArcGIS Data Interoperability: Tips for LiDAR, 3D, and BIMArcGIS Data Interoperability: Tips for LiDAR, 3D, and BIM
ArcGIS Data Interoperability: Tips for LiDAR, 3D, and BIM
Safe Software8.4K views
Ceph data services in a multi- and hybrid cloud world by Sage Weil
Ceph data services in a multi- and hybrid cloud worldCeph data services in a multi- and hybrid cloud world
Ceph data services in a multi- and hybrid cloud world
Sage Weil8.9K views
Using python to analyze spatial data by Kudos S.A.S
Using python to analyze spatial dataUsing python to analyze spatial data
Using python to analyze spatial data
Kudos S.A.S6.8K views
Desktop Softwares for Unmanned Aerial Systems(UAS)) by Kamal Shahi
Desktop Softwares for Unmanned Aerial Systems(UAS))Desktop Softwares for Unmanned Aerial Systems(UAS))
Desktop Softwares for Unmanned Aerial Systems(UAS))
Kamal Shahi11 views
DOC ROI Presentation 2pm NZ3 - Duane Wilkins by Duane Wilkins
DOC ROI Presentation 2pm NZ3 - Duane WilkinsDOC ROI Presentation 2pm NZ3 - Duane Wilkins
DOC ROI Presentation 2pm NZ3 - Duane Wilkins
Duane Wilkins187 views
FieldtripGB - data capture simplified by Addy Pope
FieldtripGB - data capture simplifiedFieldtripGB - data capture simplified
FieldtripGB - data capture simplified
Addy Pope3.1K views
brandonbal-afm_tech by Brandon Bal
brandonbal-afm_techbrandonbal-afm_tech
brandonbal-afm_tech
Brandon Bal144 views

Recently uploaded

Business Analyst Series 2023 - Week 3 Session 5 by
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5DianaGray10
300 views20 slides
Unit 1_Lecture 2_Physical Design of IoT.pdf by
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdfStephenTec
12 views36 slides
Data Integrity for Banking and Financial Services by
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial ServicesPrecisely
25 views26 slides
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdf by
STKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdfSTKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdf
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdfDr. Jimmy Schwarzkopf
20 views29 slides
Melek BEN MAHMOUD.pdf by
Melek BEN MAHMOUD.pdfMelek BEN MAHMOUD.pdf
Melek BEN MAHMOUD.pdfMelekBenMahmoud
14 views1 slide
Uni Systems for Power Platform.pptx by
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptxUni Systems S.M.S.A.
56 views21 slides

Recently uploaded(20)

Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10300 views
Unit 1_Lecture 2_Physical Design of IoT.pdf by StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec12 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely25 views
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdf by Dr. Jimmy Schwarzkopf
STKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdfSTKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdf
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdf
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker40 views
HTTP headers that make your website go faster - devs.gent November 2023 by Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn22 views
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc11 views
Future of AR - Facebook Presentation by ssuserb54b561
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
ssuserb54b56115 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays17 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi132 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
Voice Logger - Telephony Integration Solution at Aegis by Nirmal Sharma
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma39 views

Optimize map renderer !

  • 1. Proprietary and confidential Aurore Jard Mobile Lead Developer “Design for tomorrow” “Deconstruct what you know” “Simplify” “Love what you did” @AuroreJard
  • 2. April 12, 2016 Don’t lose your way optimizing maps rendering ! Talk : map optimizations ! Confidential
  • 3. Requirements Confidential ● Display ○ Data as locality ○ Zone on map ● User feature ○ Move ○ Zoom ● Access offline Talk : map optimizations !
  • 4. SDK Fight Confidential ● Map ○ https://developer.apple.com/maps/ ● Google ○ https://developers.google.com/maps/documentation/ios-sdk/ Talk : map optimizations ! Google Map VS Apple Maps
  • 5. SDK Fight Confidential ● Official documentation ○ Maps ○ Google iOS SDK ● Application also available on android : same experience on both ● Map more precise ● More possibilities Talk : map optimizations !
  • 6. First : easy steps Confidential ● Get Data ● Display data Talk : map optimizations !
  • 7. What about really a lot of data ? ConfidentialTalk : map optimizations !
  • 8. First impressions Confidential ● UI/UX remarks ○ Users are humans ! ■ Adapt data according to zoom level ■ Zone, details : only on high level of zoom ■ Regroup data that eye can dissociate ● Performances ○ Avoid treating data you don’t see... Talk : map optimizations !
  • 9. First : clustering ConfidentialTalk : map optimizations !
  • 10. First : clustering Confidential ● Regroup close data ○ easier user reading ○ Indication on number of location in one group ● Clustering possibilities : ○ Grid based clustering ○ Distance based clustering Talk : map optimizations !
  • 11. Easy optimizations : Confidential ● Grid based clustering Talk : map optimizations !
  • 12. Easy optimizations : Confidential ● Distance-based Clustering Talk : map optimizations !
  • 13. Second : don’t treat invisible data Confidential ● Limitation : ○ Zoom level Talk : map optimizations !
  • 14. Third : More optimization on sorting data Confidential ● Why does it take so long ? ● Iterate over each location : 0(n) ● Every move from the camera (move, zoom) need to iterate again Talk : map optimizations ! for location in locations { if visibleBounds.containsCoordinate(location.position) { // item should be display } else { // ignore this location }
  • 15. Third : More optimization on sorting data Confidential ● Reduce complexity by using QuadTree object & algorithms ! ● Objective : subdivision of 2D space ● QuadTree = Tree with 4 leafs Talk : map optimizations !
  • 16. Third : More optimization on sorting data Confidential ● Step 1 : ○ Build the tree from your initial data ○ Keep iteration on all locations on that process ■ o(n) but only once Talk : map optimizations !
  • 17. Third : More optimization on sorting data Confidential ● Step 2 : ○ Search for locations in a specific area ■ Everytime you move / zoom Talk : map optimizations !
  • 18. Third : More optimization on sorting data Confidential ● Why is it faster ? ○ For loop only done once at initialisation ○ Search then (user interactions) ■ O(h) (h = max depth of node in the tree) Talk : map optimizations ! h=0 h=1 h=2 h=3
  • 19. Links / Resources Confidential ● Code : ○ Open Source library for clustering with Google Map iOS SDK ○ Display Large Amount of Data on iOS Map ● MapKit Apple Sample ○ Apple Sample clustering ● Other ○ QuadTree Interactive Explanations Talk : map optimizations !
  • 20. Have fun with maps ;) Thanks ! ConfidentialTalk : map optimizations !
  • 21. Proprietary and confidential @NurunMTL CURIOUS TO KNOW MORE Follow us Nurun.com/NurunMontreal

Editor's Notes

  1. 16,30
  2. 16,30