SlideShare une entreprise Scribd logo
1  sur  64
Building Bridges, Connecting Communities
Brandon Morrison, Patrick Hayes, Josef Dabernig,
Pol Dell’Aiera, Tom Nightingale, Rik De Boer,
Nate Parsons
SHOULD HAVE MADE A LEFT
TURN AT ALBUQUERQUE:
BUILDING MAPS IN DRUPAL
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities2 !"#$%#&'(!)#%'*+,(-.&&*/0#&'(-.11"&#0#*+
(2#3(%*(!.*)(456789:97;,(:;;8<=7:>?
@A$#&3-.$$*/0#B*((((((((((((((((((((C$#&38/.18D"
!"#$#%&#'(')"*%+,(-!"#$%&'"()*'+(&*'('%*,-'-$./'(-'0%1$2$*.2$*3'1$4%&4/5'+(67'4/'8.$6(%.
EDB#'D0#&'(FDG$D&%
(''9''+4/$-*''7"#.-:$-''-".#$5"''-"*''+(6'';$/5%*
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities3! "#!$#%$ &'()*(+,-&.(*,/01-23++/45(+,-2366'+(5(/0
7895-*3-:3'-+//*-;
7895-49+-:3'-89</-;
=5:)/0-:3'-49+->(4?@!
! 5.9*(5(3+9)1-+9<(,95(3+9)
! 9.5:
! *959-<(0'9)(095(3+-A-9+9):0(0
B/95'./0-:3'-69:-C9+5@
! 9'53DE336-53-F(5-9))-69.?/.0
! 9'53D4/+5/.-3+-<(0(53.-)3495(3+
! )9:/.0-G/H96>)/@-I>/+J(05/K
! 69.?/.-43)3'.-*(FF/./+5(95(3+
! 69.?/.-4)'05/.(+,1-8/95-69>0
! L9))33+01-59,01-533)5(>0
! )(+/0-9+*-L3.*/.0-G>3):,3+0K
! M
! 69(+59(+/.N0->)9+0-F3.-OP-;
Q8/-63L()/-F9453.@!
! 63L()(5:
! '09L()(5:
! >/.F3.69+4/
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities4! "#$!#%! &'()*(+,-&.(*,/01-23++/45(+,-2366'+(5(/0
------73-68+9-63*')/0-:;<=:
758.5->/./?
@236A8.(03+-3B-68AA(+,-63*')/0C
>55A?##*.'A8)D3.,#+3*/#%EFGHGI
-----------J84>-63*')/-B3.60-3+/-63K(+,-A8.5-3B-93'.-68AA(+,-03)'5(3+D-
23'+5-3+->8K(+,-53-/6A)39-G-53-L-63*')/0D
M3'-48+N5-436O(+/-8+9-!"#$-P(5>-8+9-!"%!D
Q3*')/0-8./-85-K8.(3'0-)/K/)0-3B-436A85(O()(591-685'.(591-
B/85'./-0/50-8+*-)/+,5>0-3B-(00'/-R'/'/0D
SI-T
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities5! "#$%#&% '()*+),-.'/)+-012.34,,056),-.3477(,)6)01
89:.4;.89:.84+(*01
!"#$%"&'
!"#&#()*%#+,
-%"&'
!"*.#()*%#+/
.#()*%#+
01"+.)2"3/,
4%"5/
!6)1,7,89
:;,!"#,4%"5/<=)1/,7,89
!"#$%"&',=)1
.")$&"*,4%"5/
.")$&"*,7,89>,
.")$&"*==)1/
01"+.)2"3/,
7,89
!##?&",
@%&"/
0*A"3,
@%&"/
0B*1B*,CBDE,"?E
.")$&"*,=)3F"3G&B/*"3
!6)1,
.#()*%#+
.)*H.#+?,/*#3)?"
4%"5/I,J)&&##+/>
$%&*"3%+?>,("+*3%+?EEE
K"+'"3%+?EEE
4%"5/,
!"#890L
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities6! "#$%#&% '()*+),-.'/)+-012.34,,056),-.3477(,)6)01
869/60/.79:1.;<.=0**4>.?/(:9*0/1
869**.8:46.@A(,B179,9702.C0>.D09*9,+EF
!""#$%%&"'((&#)"*+)*,-%./&+)012345/.61"$4!""#$%%555*7+)5/.61"*+)8%
G/096.39*-9/<.A016)H9*1.@-9701=/9-0/2.39,9+9EF.!""#$%%621'"+'(6'2971&"/0'(&*+'%4
!"#$$#%&
C4/6I.J<,01)+0.34(,5)*.@*0H0***0/2.KLEF
!""#$%%89*,)2"!"9,1&/.1*6)0*:;%4!'()*+#($,#-)*./01*234&
MN3O.@>0;1791I2.'0*-)(7EF.
!""#$%%555*(1+'0-5*<1%"!18'&%0)(;&+'71&=7/1(.>#(''"&>#)&"+).1>0'(:1?@AAA!,56)(*78*
9:7)(;*'87*$#<8&
J9/9,64.G04;*4-.@P69*42.P69*<EF4
!""#$%%555*/"'()8'/2)*+)8%61)<()6+8&%/#B()+'"/),&B(1'7(1"
A96.J</01.Q4(,69),.')B0.R4(601.@=966</012.KLE$
!""#$%%7'""921&*+)*:;%
NS:*4/0.C4/6I.T0,,),01.@791I0/2.KLE$
!""#$%%1C#()21,)2"!#1,,/,1&*)26*:;%/,"12'+"/01B8'#
TOTNMNO.@9*-9U9/912.8:9),E$
!""#$%%555*#'#1(1'*1&%
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities7! "#$%#&% '()*+),-.'/)+-012.34,,056),-.3477(,)6)01
8049)0*+
:)0;1
<=.804*45>6)4,.:)0;1.?.@>A1
B0>9*06
>,+C
!"#$%"&'()*"'(#+,
!"#$%"&'(#*-"*.%/,&"*
DE>6F1.,46.64.*)G0H'
'''''''''"#,0'&)'+/&'&)1"&2"*3'1*"#&'$"#&/*"',"&3')+&454,"6'$)*'5)74%"3'
,/++)*&,'#88)&#&"6'5#*-"*,3'%48"9,&*481,':'+)%01)8,3
,;#+'5)6/%",'48<)/&';4&2)/&'*";)*-481'&2"'*",&')$'0)/*',)%/&4)83'
#845#&"6'=%/,&"*481')$'/+'&)'>???'5#*-"*,
'''''''''''''''@)*'+),&#%'#66*",,",'48,&"#6')$'%#&<%)81'#66A'I++/011J)0*+.K.80454+0/
@)*'7/%-'45+)*&')$'%)=#&4)8,'B"C1C',+*"#6,2""&D'#66A.J00+1
..........L>1M.7>A.16>/60/.G)6
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities8
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities9
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities10
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities11
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities12
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities13
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities14
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities15
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities16
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities17
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities18
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities19
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities20
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities21
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities22
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities23
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities24
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities25
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities26
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities27
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities28
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities29
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities30
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities31
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities32
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities33
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities34
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities35
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities36
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities37
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities38
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities39
Thursday, May 30, 2013
Thursday, May 30, 2013
Thursday, May 30, 2013
Thursday, May 30, 2013
The Problem
You need an interactive map with millions of
datapoints and these datapoints are continuously
being updated. The map should be searchable and
filterable.
Thursday, May 30, 2013
Now you have two problems
The first problem is cartographic. How do you
graphically show a user a map with millions of
datapoints?
Thursday, May 30, 2013
Thursday, May 30, 2013
The second problem is technical. How do you scale to
millions of datapoint while keeping the map fully
searchable and filterable?
Thursday, May 30, 2013
(Or Elastic Search)
Thursday, May 30, 2013
Geohash
Image Credit: http://www.bigdatamodeling.org
Example Geohash: U4PRUYDQQVJ
Thursday, May 30, 2013
Solr index field Count
ss_geohash_1: U 876,984
ss_geohash_2: U4 59,365
ss_geohash_3: U4P 2,567
ss_geohash_4: U4PR 753
ss_geohash_5: U4PRU 156
ss_geohash_6: U4PRUY 34
ss_geohash_7: U4PRUYD 4
ss_geohash_8: U4PRUYDQ 1
ss_geohash_9: U4PRUYDQQ 1
Use geohash as solr “buckets”
Thursday, May 30, 2013
Request a different geohash field (1 through 9)
depending on your zoom level.
Use solr faceting or grouping
Faceting on ss_geohash_5
Facet Count
U4PRU 156
5WP7U 78
DDY0R 56
6SQ2S 23
8E8RG 17
KEV66 1
Thursday, May 30, 2013
Translate the geohash facets back to latitude and
longitude and map them.
Map the facets
Facet Latitude Longitude
U4PRU 57.6 10.4
5WP7U -55.6 -12.1
DDY0R 15.5 -58.7
6SQ2S -21.0 -58.5
8E8RG 21.1 -157.0
KEV66 -23.5 30.0
Thursday, May 30, 2013
(Live demo later)
Thursday, May 30, 2013
Thursday, May 30, 2013
Thursday, May 30, 2013
Thursday, May 30, 2013
Thursday, May 30, 2013
Thursday, May 30, 2013
Thursday, May 30, 2013
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities60
Who Else?
Lev Tsypin - levelos
Leaflet module maintainer
Reinier Battenberg - batje
WMS module maintainer
Jeff Schuler - jeffschuler
Views GeoJSON module maintainer
Hi! My Name is Lev, and I love
Maps!!!
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities61
What Else?
- Starter kit modules
- Mo’better documentation
(end user and developer)
- Module evaluation matrix
(Consistent and objective
ways to rate usefulness/
relevancy of modules)
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities62
It takes a village, more
than just seven dudes...
We Need You!
- Need people to document the solutions that are
working for them
- Need people to help maintain & expand existing
modules
- Need people to help mange issue queues and
train others on the “way of the mapping.”
Thursday, May 30, 2013
05/23/13 Building Bridges, Connecting Communities63
YES!!! How Can I Help?
http://groups.drupal.org/location-and-mapping
- Reach out and TOUCH!
(Everyone mentioned here would
love to hear from you)
- Download some modules and
build something
- Dive into the issue queues
Thursday, May 30, 2013
Building Bridges, Connecting Communities
Evaluate this session at:
portland2013.drupal.org/schedule.
Thank you!
What did you think?
Thursday, May 30, 2013

Contenu connexe

Plus de Phase2

Phase2 Health and Wellness Brochure
Phase2 Health and Wellness BrochurePhase2 Health and Wellness Brochure
Phase2 Health and Wellness BrochurePhase2
 
A Modern Digital Experience Platform
A Modern Digital Experience PlatformA Modern Digital Experience Platform
A Modern Digital Experience PlatformPhase2
 
Beyond websites: A Modern Digital Experience Platform
Beyond websites: A Modern Digital Experience PlatformBeyond websites: A Modern Digital Experience Platform
Beyond websites: A Modern Digital Experience PlatformPhase2
 
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8Phase2
 
The Future of Digital Storytelling - Phase2 Talk
The Future of Digital Storytelling - Phase2 TalkThe Future of Digital Storytelling - Phase2 Talk
The Future of Digital Storytelling - Phase2 TalkPhase2
 
Site building with end user in mind
Site building with end user in mindSite building with end user in mind
Site building with end user in mindPhase2
 
Fields, entities, lists, oh my!
Fields, entities, lists, oh my!Fields, entities, lists, oh my!
Fields, entities, lists, oh my!Phase2
 
Performance Profiling Tools and Tricks
Performance Profiling Tools and TricksPerformance Profiling Tools and Tricks
Performance Profiling Tools and TricksPhase2
 
NORTH CAROLINA Open Source, OpenPublic, OpenShift
NORTH CAROLINA Open Source, OpenPublic, OpenShiftNORTH CAROLINA Open Source, OpenPublic, OpenShift
NORTH CAROLINA Open Source, OpenPublic, OpenShiftPhase2
 
Drupal 8 for Enterprise: D8 in a Changing Digital Landscape
Drupal 8 for Enterprise: D8 in a Changing Digital LandscapeDrupal 8 for Enterprise: D8 in a Changing Digital Landscape
Drupal 8 for Enterprise: D8 in a Changing Digital LandscapePhase2
 
Riding the Drupal Wave: The Future for Drupal and Open Source Content Manage...
Riding the Drupal Wave:  The Future for Drupal and Open Source Content Manage...Riding the Drupal Wave:  The Future for Drupal and Open Source Content Manage...
Riding the Drupal Wave: The Future for Drupal and Open Source Content Manage...Phase2
 
Site Building with the End User in Mind
Site Building with the End User in MindSite Building with the End User in Mind
Site Building with the End User in MindPhase2
 
The Yes, No, and Maybe of "Can We Build That With Drupal?"
The Yes, No, and Maybe of "Can We Build That With Drupal?"The Yes, No, and Maybe of "Can We Build That With Drupal?"
The Yes, No, and Maybe of "Can We Build That With Drupal?"Phase2
 
User Testing For Humanitarian ID App
User Testing For Humanitarian ID AppUser Testing For Humanitarian ID App
User Testing For Humanitarian ID AppPhase2
 
Redhat.com: An Architectural Case Study
Redhat.com: An Architectural Case StudyRedhat.com: An Architectural Case Study
Redhat.com: An Architectural Case StudyPhase2
 
The New Design Workflow
The New Design WorkflowThe New Design Workflow
The New Design WorkflowPhase2
 
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)Phase2
 
Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8Phase2
 
How, When, and Why to Patch a Module
How, When, and Why to Patch a Module How, When, and Why to Patch a Module
How, When, and Why to Patch a Module Phase2
 
Drupal Is Not Your Web Site
Drupal Is Not Your Web SiteDrupal Is Not Your Web Site
Drupal Is Not Your Web SitePhase2
 

Plus de Phase2 (20)

Phase2 Health and Wellness Brochure
Phase2 Health and Wellness BrochurePhase2 Health and Wellness Brochure
Phase2 Health and Wellness Brochure
 
A Modern Digital Experience Platform
A Modern Digital Experience PlatformA Modern Digital Experience Platform
A Modern Digital Experience Platform
 
Beyond websites: A Modern Digital Experience Platform
Beyond websites: A Modern Digital Experience PlatformBeyond websites: A Modern Digital Experience Platform
Beyond websites: A Modern Digital Experience Platform
 
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
 
The Future of Digital Storytelling - Phase2 Talk
The Future of Digital Storytelling - Phase2 TalkThe Future of Digital Storytelling - Phase2 Talk
The Future of Digital Storytelling - Phase2 Talk
 
Site building with end user in mind
Site building with end user in mindSite building with end user in mind
Site building with end user in mind
 
Fields, entities, lists, oh my!
Fields, entities, lists, oh my!Fields, entities, lists, oh my!
Fields, entities, lists, oh my!
 
Performance Profiling Tools and Tricks
Performance Profiling Tools and TricksPerformance Profiling Tools and Tricks
Performance Profiling Tools and Tricks
 
NORTH CAROLINA Open Source, OpenPublic, OpenShift
NORTH CAROLINA Open Source, OpenPublic, OpenShiftNORTH CAROLINA Open Source, OpenPublic, OpenShift
NORTH CAROLINA Open Source, OpenPublic, OpenShift
 
Drupal 8 for Enterprise: D8 in a Changing Digital Landscape
Drupal 8 for Enterprise: D8 in a Changing Digital LandscapeDrupal 8 for Enterprise: D8 in a Changing Digital Landscape
Drupal 8 for Enterprise: D8 in a Changing Digital Landscape
 
Riding the Drupal Wave: The Future for Drupal and Open Source Content Manage...
Riding the Drupal Wave:  The Future for Drupal and Open Source Content Manage...Riding the Drupal Wave:  The Future for Drupal and Open Source Content Manage...
Riding the Drupal Wave: The Future for Drupal and Open Source Content Manage...
 
Site Building with the End User in Mind
Site Building with the End User in MindSite Building with the End User in Mind
Site Building with the End User in Mind
 
The Yes, No, and Maybe of "Can We Build That With Drupal?"
The Yes, No, and Maybe of "Can We Build That With Drupal?"The Yes, No, and Maybe of "Can We Build That With Drupal?"
The Yes, No, and Maybe of "Can We Build That With Drupal?"
 
User Testing For Humanitarian ID App
User Testing For Humanitarian ID AppUser Testing For Humanitarian ID App
User Testing For Humanitarian ID App
 
Redhat.com: An Architectural Case Study
Redhat.com: An Architectural Case StudyRedhat.com: An Architectural Case Study
Redhat.com: An Architectural Case Study
 
The New Design Workflow
The New Design WorkflowThe New Design Workflow
The New Design Workflow
 
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
 
Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8
 
How, When, and Why to Patch a Module
How, When, and Why to Patch a Module How, When, and Why to Patch a Module
How, When, and Why to Patch a Module
 
Drupal Is Not Your Web Site
Drupal Is Not Your Web SiteDrupal Is Not Your Web Site
Drupal Is Not Your Web Site
 

Dernier

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Dernier (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

SHOULD HAVE MADE A LEFT TURN AT ALBUQUERQUE: BUILDING MAPS IN DRUPAL

  • 1. Building Bridges, Connecting Communities Brandon Morrison, Patrick Hayes, Josef Dabernig, Pol Dell’Aiera, Tom Nightingale, Rik De Boer, Nate Parsons SHOULD HAVE MADE A LEFT TURN AT ALBUQUERQUE: BUILDING MAPS IN DRUPAL Thursday, May 30, 2013
  • 2. 05/23/13 Building Bridges, Connecting Communities2 !"#$%#&'(!)#%'*+,(-.&&*/0#&'(-.11"&#0#*+ (2#3(%*(!.*)(456789:97;,(:;;8<=7:>? @A$#&3-.$$*/0#B*((((((((((((((((((((C$#&38/.18D" !"#$#%&#'(')"*%+,(-!"#$%&'"()*'+(&*'('%*,-'-$./'(-'0%1$2$*.2$*3'1$4%&4/5'+(67'4/'8.$6(%. EDB#'D0#&'(FDG$D&% (''9''+4/$-*''7"#.-:$-''-".#$5"''-"*''+(6'';$/5%* Thursday, May 30, 2013
  • 3. 05/23/13 Building Bridges, Connecting Communities3! "#!$#%$ &'()*(+,-&.(*,/01-23++/45(+,-2366'+(5(/0 7895-*3-:3'-+//*-; 7895-49+-:3'-89</-; =5:)/0-:3'-49+->(4?@! ! 5.9*(5(3+9)1-+9<(,95(3+9) ! 9.5: ! *959-<(0'9)(095(3+-A-9+9):0(0 B/95'./0-:3'-69:-C9+5@ ! 9'53DE336-53-F(5-9))-69.?/.0 ! 9'53D4/+5/.-3+-<(0(53.-)3495(3+ ! )9:/.0-G/H96>)/@-I>/+J(05/K ! 69.?/.-43)3'.-*(FF/./+5(95(3+ ! 69.?/.-4)'05/.(+,1-8/95-69>0 ! L9))33+01-59,01-533)5(>0 ! )(+/0-9+*-L3.*/.0-G>3):,3+0K ! M ! 69(+59(+/.N0->)9+0-F3.-OP-; Q8/-63L()/-F9453.@! ! 63L()(5: ! '09L()(5: ! >/.F3.69+4/ Thursday, May 30, 2013
  • 4. 05/23/13 Building Bridges, Connecting Communities4! "#$!#%! &'()*(+,-&.(*,/01-23++/45(+,-2366'+(5(/0 ------73-68+9-63*')/0-:;<=: 758.5->/./? @236A8.(03+-3B-68AA(+,-63*')/0C >55A?##*.'A8)D3.,#+3*/#%EFGHGI -----------J84>-63*')/-B3.60-3+/-63K(+,-A8.5-3B-93'.-68AA(+,-03)'5(3+D- 23'+5-3+->8K(+,-53-/6A)39-G-53-L-63*')/0D M3'-48+N5-436O(+/-8+9-!"#$-P(5>-8+9-!"%!D Q3*')/0-8./-85-K8.(3'0-)/K/)0-3B-436A85(O()(591-685'.(591- B/85'./-0/50-8+*-)/+,5>0-3B-(00'/-R'/'/0D SI-T Thursday, May 30, 2013
  • 5. 05/23/13 Building Bridges, Connecting Communities5! "#$%#&% '()*+),-.'/)+-012.34,,056),-.3477(,)6)01 89:.4;.89:.84+(*01 !"#$%"&' !"#&#()*%#+, -%"&' !"*.#()*%#+/ .#()*%#+ 01"+.)2"3/, 4%"5/ !6)1,7,89 :;,!"#,4%"5/<=)1/,7,89 !"#$%"&',=)1 .")$&"*,4%"5/ .")$&"*,7,89>, .")$&"*==)1/ 01"+.)2"3/, 7,89 !##?&", @%&"/ 0*A"3, @%&"/ 0B*1B*,CBDE,"?E .")$&"*,=)3F"3G&B/*"3 !6)1, .#()*%#+ .)*H.#+?,/*#3)?" 4%"5/I,J)&&##+/> $%&*"3%+?>,("+*3%+?EEE K"+'"3%+?EEE 4%"5/, !"#890L Thursday, May 30, 2013
  • 6. 05/23/13 Building Bridges, Connecting Communities6! "#$%#&% '()*+),-.'/)+-012.34,,056),-.3477(,)6)01 869/60/.79:1.;<.=0**4>.?/(:9*0/1 869**.8:46.@A(,B179,9702.C0>.D09*9,+EF !""#$%%&"'((&#)"*+)*,-%./&+)012345/.61"$4!""#$%%555*7+)5/.61"*+)8% G/096.39*-9/<.A016)H9*1.@-9701=/9-0/2.39,9+9EF.!""#$%%621'"+'(6'2971&"/0'(&*+'%4 !"#$$#%& C4/6I.J<,01)+0.34(,5)*.@*0H0***0/2.KLEF !""#$%%89*,)2"!"9,1&/.1*6)0*:;%4!'()*+#($,#-)*./01*234& MN3O.@>0;1791I2.'0*-)(7EF. !""#$%%555*(1+'0-5*<1%"!18'&%0)(;&+'71&=7/1(.>#(''"&>#)&"+).1>0'(:1?@AAA!,56)(*78* 9:7)(;*'87*$#<8& J9/9,64.G04;*4-.@P69*42.P69*<EF4 !""#$%%555*/"'()8'/2)*+)8%61)<()6+8&%/#B()+'"/),&B(1'7(1" A96.J</01.Q4(,69),.')B0.R4(601.@=966</012.KLE$ !""#$%%7'""921&*+)*:;% NS:*4/0.C4/6I.T0,,),01.@791I0/2.KLE$ !""#$%%1C#()21,)2"!#1,,/,1&*)26*:;%/,"12'+"/01B8'# TOTNMNO.@9*-9U9/912.8:9),E$ !""#$%%555*#'#1(1'*1&% Thursday, May 30, 2013
  • 7. 05/23/13 Building Bridges, Connecting Communities7! "#$%#&% '()*+),-.'/)+-012.34,,056),-.3477(,)6)01 8049)0*+ :)0;1 <=.804*45>6)4,.:)0;1.?.@>A1 B0>9*06 >,+C !"#$%"&'()*"'(#+, !"#$%"&'(#*-"*.%/,&"* DE>6F1.,46.64.*)G0H' '''''''''"#,0'&)'+/&'&)1"&2"*3'1*"#&'$"#&/*"',"&3')+&454,"6'$)*'5)74%"3' ,/++)*&,'#88)&#&"6'5#*-"*,3'%48"9,&*481,':'+)%01)8,3 ,;#+'5)6/%",'48<)/&';4&2)/&'*";)*-481'&2"'*",&')$'0)/*',)%/&4)83' #845#&"6'=%/,&"*481')$'/+'&)'>???'5#*-"*, '''''''''''''''@)*'+),&#%'#66*",,",'48,&"#6')$'%#&<%)81'#66A'I++/011J)0*+.K.80454+0/ @)*'7/%-'45+)*&')$'%)=#&4)8,'B"C1C',+*"#6,2""&D'#66A.J00+1 ..........L>1M.7>A.16>/60/.G)6 Thursday, May 30, 2013
  • 8. 05/23/13 Building Bridges, Connecting Communities8 Thursday, May 30, 2013
  • 9. 05/23/13 Building Bridges, Connecting Communities9 Thursday, May 30, 2013
  • 10. 05/23/13 Building Bridges, Connecting Communities10 Thursday, May 30, 2013
  • 11. 05/23/13 Building Bridges, Connecting Communities11 Thursday, May 30, 2013
  • 12. 05/23/13 Building Bridges, Connecting Communities12 Thursday, May 30, 2013
  • 13. 05/23/13 Building Bridges, Connecting Communities13 Thursday, May 30, 2013
  • 14. 05/23/13 Building Bridges, Connecting Communities14 Thursday, May 30, 2013
  • 15. 05/23/13 Building Bridges, Connecting Communities15 Thursday, May 30, 2013
  • 16. 05/23/13 Building Bridges, Connecting Communities16 Thursday, May 30, 2013
  • 17. 05/23/13 Building Bridges, Connecting Communities17 Thursday, May 30, 2013
  • 18. 05/23/13 Building Bridges, Connecting Communities18 Thursday, May 30, 2013
  • 19. 05/23/13 Building Bridges, Connecting Communities19 Thursday, May 30, 2013
  • 20. 05/23/13 Building Bridges, Connecting Communities20 Thursday, May 30, 2013
  • 21. 05/23/13 Building Bridges, Connecting Communities21 Thursday, May 30, 2013
  • 22. 05/23/13 Building Bridges, Connecting Communities22 Thursday, May 30, 2013
  • 23. 05/23/13 Building Bridges, Connecting Communities23 Thursday, May 30, 2013
  • 24. 05/23/13 Building Bridges, Connecting Communities24 Thursday, May 30, 2013
  • 25. 05/23/13 Building Bridges, Connecting Communities25 Thursday, May 30, 2013
  • 26. 05/23/13 Building Bridges, Connecting Communities26 Thursday, May 30, 2013
  • 27. 05/23/13 Building Bridges, Connecting Communities27 Thursday, May 30, 2013
  • 28. 05/23/13 Building Bridges, Connecting Communities28 Thursday, May 30, 2013
  • 29. 05/23/13 Building Bridges, Connecting Communities29 Thursday, May 30, 2013
  • 30. 05/23/13 Building Bridges, Connecting Communities30 Thursday, May 30, 2013
  • 31. 05/23/13 Building Bridges, Connecting Communities31 Thursday, May 30, 2013
  • 32. 05/23/13 Building Bridges, Connecting Communities32 Thursday, May 30, 2013
  • 33. 05/23/13 Building Bridges, Connecting Communities33 Thursday, May 30, 2013
  • 34. 05/23/13 Building Bridges, Connecting Communities34 Thursday, May 30, 2013
  • 35. 05/23/13 Building Bridges, Connecting Communities35 Thursday, May 30, 2013
  • 36. 05/23/13 Building Bridges, Connecting Communities36 Thursday, May 30, 2013
  • 37. 05/23/13 Building Bridges, Connecting Communities37 Thursday, May 30, 2013
  • 38. 05/23/13 Building Bridges, Connecting Communities38 Thursday, May 30, 2013
  • 39. 05/23/13 Building Bridges, Connecting Communities39 Thursday, May 30, 2013
  • 43. The Problem You need an interactive map with millions of datapoints and these datapoints are continuously being updated. The map should be searchable and filterable. Thursday, May 30, 2013
  • 44. Now you have two problems The first problem is cartographic. How do you graphically show a user a map with millions of datapoints? Thursday, May 30, 2013
  • 46. The second problem is technical. How do you scale to millions of datapoint while keeping the map fully searchable and filterable? Thursday, May 30, 2013
  • 48. Geohash Image Credit: http://www.bigdatamodeling.org Example Geohash: U4PRUYDQQVJ Thursday, May 30, 2013
  • 49. Solr index field Count ss_geohash_1: U 876,984 ss_geohash_2: U4 59,365 ss_geohash_3: U4P 2,567 ss_geohash_4: U4PR 753 ss_geohash_5: U4PRU 156 ss_geohash_6: U4PRUY 34 ss_geohash_7: U4PRUYD 4 ss_geohash_8: U4PRUYDQ 1 ss_geohash_9: U4PRUYDQQ 1 Use geohash as solr “buckets” Thursday, May 30, 2013
  • 50. Request a different geohash field (1 through 9) depending on your zoom level. Use solr faceting or grouping Faceting on ss_geohash_5 Facet Count U4PRU 156 5WP7U 78 DDY0R 56 6SQ2S 23 8E8RG 17 KEV66 1 Thursday, May 30, 2013
  • 51. Translate the geohash facets back to latitude and longitude and map them. Map the facets Facet Latitude Longitude U4PRU 57.6 10.4 5WP7U -55.6 -12.1 DDY0R 15.5 -58.7 6SQ2S -21.0 -58.5 8E8RG 21.1 -157.0 KEV66 -23.5 30.0 Thursday, May 30, 2013
  • 60. 05/23/13 Building Bridges, Connecting Communities60 Who Else? Lev Tsypin - levelos Leaflet module maintainer Reinier Battenberg - batje WMS module maintainer Jeff Schuler - jeffschuler Views GeoJSON module maintainer Hi! My Name is Lev, and I love Maps!!! Thursday, May 30, 2013
  • 61. 05/23/13 Building Bridges, Connecting Communities61 What Else? - Starter kit modules - Mo’better documentation (end user and developer) - Module evaluation matrix (Consistent and objective ways to rate usefulness/ relevancy of modules) Thursday, May 30, 2013
  • 62. 05/23/13 Building Bridges, Connecting Communities62 It takes a village, more than just seven dudes... We Need You! - Need people to document the solutions that are working for them - Need people to help maintain & expand existing modules - Need people to help mange issue queues and train others on the “way of the mapping.” Thursday, May 30, 2013
  • 63. 05/23/13 Building Bridges, Connecting Communities63 YES!!! How Can I Help? http://groups.drupal.org/location-and-mapping - Reach out and TOUCH! (Everyone mentioned here would love to hear from you) - Download some modules and build something - Dive into the issue queues Thursday, May 30, 2013
  • 64. Building Bridges, Connecting Communities Evaluate this session at: portland2013.drupal.org/schedule. Thank you! What did you think? Thursday, May 30, 2013