SlideShare a Scribd company logo
1 of 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

More Related Content

More from Phase2

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
Phase2
 
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
 
Drupal Is Not Your Web Site
Drupal Is Not Your Web SiteDrupal Is Not Your Web Site
Drupal Is Not Your Web Site
Phase2
 

More from 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
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 

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