73
!"# %&’(#) *+,-.+)/ 0123# 456 7&,,2892((#/ :% 4;<=6 *>&"#? @5@AB=CA6@@@ D+E? F==G44@GCCF= ...A&’#"3#H>"&(&I)I,&1’AH&J !"#$%&’() +,--./,--0 1#23 425(3"6"’$ 7%"8#9 :35; < =66 %&’()> %2>2%?2@; A2#%"@85)&"3 B3@ %2@&>)%&C8)&"3 "D )(&> @"58E23) &3 &)> 83E"@&D&2@ D"%E &> B66"F2@ !"#$%#&%’%() +,-. /#$# 0%$1 2,3$45!6 47,/8#(),6 #(9 :"7(;#+7.3 !"#$%#&%’%() +,-. /#$# 0%$1 2,3$45!6 47,/8#(),6 #(9 :"7(;#+7.3 <1#(97. 4#(73#( :=>7%&&+ :!<:? @-&+ AB6 ACCD !"#$ & ’( )*

zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

Embed Size (px)

Citation preview

Page 1: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!6*47,/8#(),6*#(9*:"7(;#+7.3

<1#(97.*4#(73#(:=>7%&&+*:!<:?@-&+*AB6*ACCD

!"#$%&%'(%)*

Page 2: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

E#F&7*,G*<,($7($3!"#$%&'$"(')*+',(#-'.*$"'/0123333333333333333333333333333333333333333333333333333333333333334/01'5678#9(7$#-&3333333333333333333333333333333333333333333333333333333333333333333333333333333333 :!"#$'*&'/01233333333333333333333333333333333333333333333333333333333333333333333333333333333333333 ;<(=$>?',#$#333333333333333333333333333333333333333333333333333333333333333333333333333333333333@

1A#$*#-'B(C(?(7=('1D&$(9&33333333333333333333333333333333333333333333333333333333333333333EFG>6$'H>&$/0133333333333333333333333333333333333333333333333333333333333333333333333333333333333 IFG>6$'/(>,J#7+>3333333333333333333333333333333333333333333333333333333333333333333333333333 KL/(>,J#7+>'M>9A>7(7$&333333333333333333333333333333333333333333333333333333333333333333 KK

07&$#--*7+'N'M>7C*+6?*7+/(>,J#7+>'M>9A>7(7$&33333333333333333333333333333333333333333333333333333333333333333333333KO/(>,J#7+>'H?(PB(Q6*&*$(&333333333333333333333333333333333333333333333333333333333333333K4M">>&*7+'#',#$#G#&(333333333333333333333333333333333333333333333333333333333333333333333333K;,>.7->#8*7+'N'07&$#--*7+',J#7+>333333333333333333333333333333333333333333333333333K@M?(#$*7+'#'H>&$/01',#$#G#&(33333333333333333333333333333333333333333333333333333333333 KE

M?(#$*7+'/(>,J#7+>'R>8(-&3333333333333333333333333333333333333333333333333333333333333333 KIM?(#$*7+'#'S(.'H?>J(=$33333333333333333333333333333333333333333333333333333333333333333333 TLF88*7+'*7'/(>,J#7+>3333333333333333333333333333333333333333333333333333333333333333333333 TTM?(#$*7+'#'S(.'FAA-*=#$*>73333333333333333333333333333333333333333333333333333333333333TO

09A>?$*7+'1A#$*#-',#$#33333333333333333333333333333333333333333333333333333333333333333333333333T4U"('/(>,J#7+>',#$#'R>8(-333333333333333333333333333333333333333333333333333333333333T:U"('/(>R#7#+(?33333333333333333333333333333333333333333333333333333333333333333333333333333 T;V&*7+'>+?*7&A(=$'$>'/(7(?#$('R>8(-&'N'R#AA*7+&3333333333333333333333333T@07&$#--*7+'$"('R>8(-'*7'$"(',#$#G#&(33333333333333333333333333333333333333333333333TI09A>?$*7+',#$#'V&*7+'$"('W#D(?R#AA*7+3333333333333333333333333333333333333333OL

/(>,J#7+>'1A#$*#-'X6(?*(&333333333333333333333333333333333333333333333333333333333333333333 OOFG>6$'1A#$*#-'W>>Y6A&33333333333333333333333333333333333333333333333333333333333333333333 O4M>7&$?6=$*7+'/(>9($?*(&33333333333333333333333333333333333333333333333333333333333333333 O:/(7(?#$*7+'#'/(>X6(?D1($33333333333333333333333333333333333333333333333333333333333333 OE

,*&A-#D*7+'R#A',#$#33333333333333333333333333333333333333333333333333333333333333333333333333334KFG>6$'R#A',#$#33333333333333333333333333333333333333333333333333333333333333333333333333333334T/(7(?#$*7+'Z6$A6$'07$(?C#=(&333333333333333333333333333333333333333333333333333333333334OV&*7+'/(>,J#7+>'1">?$=6$&333333333333333333333333333333333333333333333333333333333333 44/(7(?#$*7+'[RW'Z6$A6$3333333333333333333333333333333333333333333333333333333333333333334:

07$(+?#$*7+'ZA(7W#D(?&333333333333333333333333333333333333333333333333333333333333333333333333 4@FG>6$'ZA(7W#D(?&333333333333333333333333333333333333333333333333333333333333333333333333333 4EB#&$(?'\&3'<(=$>?',#$#33333333333333333333333333333333333333333333333333333333333333333333334I07&$#--*7+'ZA(7W#D(?&3333333333333333333333333333333333333333333333333333333333333333333333:LM?(#$*7+'#'S(.'R#A333333333333333333333333333333333333333333333333333333333333333333333333 :KR#7#+*7+'W#D(?&33333333333333333333333333333333333333333333333333333333333333333333333333333 :;ZA(7W#D(?&')#&('W#D(?'B(Q6*?(9(7$333333333333333333333333333333333333333333333 :IF88*7+'!R1'N'!51'W#D(?&'$>'#'R#A3333333333333333333333333333333333333333333;L/(>,J#7+>'#78'ZA(7W#D(?&333333333333333333333333333333333333333333333333333333333333;:W*9*$*7+'5(#$6?(&'B($6?7(8'.*$"'/(>,J#7+>3333333333333333333333333333333333;;V&*7+'$"('1(-(=$5(#$6?('M>7$?>-333333333333333333333333333333333333333333333333333333 ;IR#Y*7+'5(#$6?('B(Q6(&$&'.*$"'/($5(#$6?(33333333333333333333333333333333333333@T

X6(&$*>7&233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 @:!"(?('$>'/($'F7&.(?&]S(^$'1$(A&333333333333333333333333333333333333333333333333333@;

!"#$%+%'(%)*

Page 3: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

!"#$%*%'(%)*

Page 4: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

H1#$=3*$17*I%)*/7#&*0%$1*45!J,-.%/%,$'#0"1234%-5('06"73'5%.897$69:$93#5$;%7'%";;%72$%<=2$0$>%7'%72$%<=2"7>?%<=2$5>?%<2'=>?%"5;%<=28>%'(%7235#9@A9$9%35;B9708%97"5;"0;%7$069%"5;%6$42"5396%7'%"CC'=%1$'1C$%7'%92"0$%;"7"%;$"C35#%=372%C'4"73'5%'5%"%1C"5$7%D78134"CC8?%E"072?%FB7%='0G9%('0%8'B0%1C"5$7%'(%42'34$H@A9$;%7'%"59=$0%IB$973'59%C3G$JK'=%6"58%L$1BFC34"59%"0$%35%"%M'735#%;3970347NO2"7%4378%39%68%1C"5$%4B00$57C8%(C835#%'M$0NO2"7P9%72$%"M$0"#$%M"CB$%'(%C"5;%35%."5%Q'9$NK'=%4"5%-%0$R;0"=%942''C%;3970347%C35$9%7'%$59B0$%72"7%68%942''C%395P7%'M$040'=;$;NO2"7P9%72$%92'07$97%0'B7$%(0'6%S%7'%TNO2$0$%39%68%3!2'5$%03#27%5'=N

!"#$%U%'(%)*

Page 5: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

45!*K-(9#L7($#&3

!"#$%V%'(%)*

Page 6: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

H1#$*%3*45!J,-.%'0%,$'#0"1234"C%-5('06"73'5%.897$69%"0$%9897$69%72"7%"0$%B9$;%7'%4"17B0$?%97'0$?%;391C"8?%"5;%"5"C8W$%#$'91"73"C%;"7"?%"5;%379%"99'43"7$;%"7703FB7$9@X2$%7$06%#$'91"73"C%0$($09%91$43(34"CC8%7'%72$%1C"5$7%E"072%D'0%9'6$%'72$0%1C"5$7H%"9%72$%F"939%'(%379%4''0;35"7$%9897$6@,-.%7''C9%"CC'=%B9%7'%#$5$0"7$%IB$03$9%D"#"3597%"%;"7"F"9$?%35%6'97%4"9$9H%72"7%"CC'=%B9%7'%"5"C8W$%91"73"C%35('06"73'5?%$;37%;"7"?%6"19?%"5;%;391C"8%'0%97'0$%72$%0$9BC79%'(%9B42%'1$0"73'59@

Y'97%,-.%;"7"%354CB;$9%7='%4'61'5$579JZ%91"73"C%4'61'5$57%/%7239%;$9403F$9%72$%C'4"73'5%'0%91"73"C%;39703FB73'5%'(%9'6$%G35;%'(%#$'#0"[email protected]"73"C%4'61'5$579%"0$%78134"CC8%0$10$9$57$;%B935#%'5$%'(%7='%6$72';9JZ9%"%(3$C;%0$10$9$57"73'5@%%-5%"%(3$C;%0$10$9$57"73'5%$"42%1'357%35%72$%91"4$%2"9%"5%"993#5$;%M"CB$%/%7239%C$";9%7'%"%0"97$0%;"7"%6';$C@%%L"97$0%6';$C9%B9$%"%6"703[?%=2$0$%$"42%4$CC%4'57"359%"%M"CB$%D('0%$["61C$?%"5%$C$M"73'5%'0%'72$0%10'1$073$9H@Z9%"%9$7%'(%1'3579%72"7%"0$%970B5#%7'#$72$0%7'%6"G$%C35$9%'0%1'C8#'59@%%X239%39%G5'=5%"9%"%M$47'0%;"7"%6';$C@%%!'97,-.%"5;%,$':\"5#'%"0$%F'72%;$93#5$;%7'%B9$%M$47'0%;"7"@

Z5%"7703FB7$%/%=2342%39%B9$;%7'%;$9403F$%72$%10'1$073$9%'(%72$%91"73"C%4'61'5$57@

!"#$%]%'(%)*

Page 7: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

M7N$,.*/#$#,$':\"5#'%"5;%!'9,-.%F'72%97'0$%"5;%6"5"#$%91"73"C%;"7"%B935#%"%^$47'0%6';$C@A5C3G$%0"97$0%;"7"?%=2342%39%6";$%B1%'(%<F'[$9>%'0%<13[$C9>?%M$47'0%;"7"%39%4'61039$;%'(%C35$9%'0%"049@E"42%C35$%'0%"04%39%;$(35$;%F8%"%F$#35535#%'0%$5;%1'3579?%=372%$"42%9$7%'(%1'3579%6$$735#%"7%"%5';$@X2$%5';$%C'4"73'5%379$C(?%"5;%72$%7'1'C'#34"C%970B47B0$%B9B"CC8%97'0$;%$[1C3437C8@

_$"7B0$9%"0$%;$(35$;%F8%72$30%F'B5;"03$9?%"5;%4B0M$;%C35$9%"0$%0$10$9$57$;%"9%"%9$03$9%'(%4'55$4735#%"049@,$'%91"73"C%;"7"%35%"%M$47'0%('06"7%39%97'0$;%"9%"%9$7%'(%4''0;35"7$9@%%X2$%F"934%B5379%B9$;%7'%0$10$9$57%7239%35('06"73'5%39J!'3579%/%"%W$0'R;36$593'5"C%"F970"473'5%'(%"5%'F\$47?%0$10$9$57$;%F8%"%935#C8%S?%T%4''0;35"7$%9$7@`35$9%/%"%9$7%'(%4''0;35"7$9%72"7%0$10$9$57%72$%92"1$%'(%"%#$'#0"1234%($"7B0$%7''%5"00'=%7'%F$%;391C"8$;%"9%"5%"0$"%D9B42%"9%"%970$$7?%0B5="8?%9$=$0%C35$?%'0%970$"6H@!'C8#'5%/%"%($"7B0$%72"7%39%B9$;%7'%0$10$9$57%"5%"0$"@%%Z%1'C8#'5%39%;$(35$;%F8%C35$9%72"7%6"G$%B1%379%F'B5;"03$9@%%Z;;373'5"CC8%"%1'C8#'5%=3CC%2"M$%"%1'357%;$(35$;%3593;$%379%F'B5;"08%7'%F$%B9$;%('0%3;$573(34"73'5@

!"#$%)%'(%)*

Page 8: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

!"#$%#&*>7G7.7(N7*!+3$7L3X2$%91"73"C%0$($0$54$%9897$6%D.L.H%39%"%4'6F35"73'5%'(%72$%!0'\$473'5%"5;%72$%:"7B6%F$35#%B9$;@a"934"CC8?%37%;$(35$9%"5%$CC319'3;@-7%72$5%;$(35$9%"%;"7B6%B935#%72"7%$CC319'3;@`"97C8?%37%;$(35$9%"%#$'4$57034?%#$'#0"1234?%'0%10'\$473'5@

X2$%10'\$473'5%F$35#%B9$;%"C="89%2"9%"%#$'#0"1234%4''0;35"7$%9897$6%"99'43"7$;%=372%37@X2$%EB0'1$"5%!$70'C$B6%.B0M$8%,0'B1%DE!.,H%2"9%"%9$7%'(%10$R;$(35$;%91"73"C%0$($0$54$9?%$"42%'(%=2342%2"9%F$$5%"993#5$;%"%B53IB$%-:%D"5%E!.,%5B6F$0H@!'97,-.%B9$9%"%91"73"C%0$($0$54$%3;$573(3$0%D.L-:H%7'%35;34"7$%72$%91"73"C%0$($0$54$%B9$;%F8%"%#$'6$708@

.'%=2$5$M$0%=$%7"CG%"F'B7%,$'91"73"C%;"7"?%=$%"0$%0$($0035#%7'%72$%('CC'=35#%"9%"%1'357%'(%0$($0$54$J&@ Z5%ECC319'3;%+@ Z%:"7B6%B935#%72"7%$CC319'3;%D72$%;"7B6%10'M3;$9%72$%4$57$0%"5;%'03$57"73'5%('0%72$%$CC319'3;%F8%6"1135#%37%'5%7'%72$%9B0("4$%'(%72$%1C"5$7%"7%"%1"0734BC"0%1'357%35%736$H@

*@ .'6$%10'\$473'5%D"47B"CC8?%=$%4'BC;%2"M$%37%;$(35$;%"9%#$'4$57034%'0%#$'#0"1234%"9%=$CCH@%A9B"CC8%=$%B9$%"%97"5;"0;3W$;%E!.,%91"73"C%0$($0$54$%9897$6%('0%72$%#$'#0"1234%4''0;35"7$%9897$6@

!"#$%b%'(%)*

Page 9: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

OF,-$*2,3$45!!'97,-.%39%"%9$7%'(%$[7$593'59%7'%72$%!'97#0$.c`%dF\$47RL$C"73'5"C%:"7"F"9$%9897$6%D72$%='0C;P9%6'97%";M"54$;%d1$5%.'B04$%:"7"F"9$H@!'97,-.%";;9%91"73"C%;"7"781$9?%'1$0"7'09?%"5;%(B5473'59%7'%!'97#0$.c`@Z5%35;$[35#%970"7$#8%7'%IB34GC8%"5;%$"93C8%C'4"7$%($"7B0$9%0$C"73M$%7'%'72$0%($"7B0$9@Z%9$7%'(%(B5473'59%7'%1$0('06%0$R10'\$473'5%'(%;"7"%(0'6%'5$%91"73"C%0$($0$54$%9897$6%7'%"5'72$0@X2B9%"CC'=35#%7"FC$%<Z>%7'%B9$%'5$%E!.,%M"CB$%"5;%<a>%7'%B9$%"5'72$0?%"5;%<\'359>%7'%F$%1$0('06$;%F$7=$$5%#$'6$703$9%35%72$%7='@

Z%9$7%'(%(B5473'59%7'%4'5970B47%"%5$=%#$'6$708%(0'6%$[39735#%'5$9Y$0#$%7='%#$'6$703$9%7'#$72$0@E[1"5;%"%#$'6$708%'B7%7'%6"G$%37%F3##$0@

Z%9$7%'(%(B5473'59%7'%1$0('06%#$'6$7034%7$979%D=2"7%39%72$%;397"54$%F$7=$$5%72$9$%7='%#$'6$703$9?%;'$9%7239%#$'6$708%'M$0C"1%7239%'72$0%#$'6$708?%$74H@

eC'9$97%"5"C'#'B9%7''C9%='BC;%F$JE.L-%.1"73"C%:"7"F"9$%E5#35$%D.:EH%DfffHd0"4C$%.1"73"C%DfffHY8.c`%.1"73"C%D366"7B0$g($"7B0$%1''0H

A9$;%F8%C'79%'(%FB#%#B89@@@h"7B0"C%L$9'B04$9%e"5";"?%A.%h"M8?%A.%Z068?%hZ.Z?%hdZZ%/%\B97%7'%5"6$%"%($=

e"5%;'%1"72%0'B735#%B935#%7''C9%C3G$%!#L'B735#@

!"#$%i%'(%)*

Page 10: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

OF,-$*47,/8#(),,$':\"5#'%39%"5%$[7$593'5%'(%72$%:\"5#'%Y';$CRX$61C"7$R^3$=%DYX^H%=$F%;$M$C'16$57%(0"6$='0G@,$':\"5#'%10'M3;$9%"%5B6F$0%'(%6';BC$9?%4C"99$9?%"5;%7''C9%72"7%6"8%F$%B9$;%7'%IB34GC8%;$M$C'1%"5;%;$1C'8%=$F%"11C34"73'59%72"7%B9$%#$'91"73"C%7$425'C'#3$9@

`3G$%:\"5#'?%,$':\"5#'%39%;$93#5$;%7'%F$%("97%"5;%$"98?%"5;%C$79%8'B%FB3C;%23#2R1$0('0635#?%$C$#"57%O$F%"11C34"73'59%IB34GC8%,$':\"5#'%('4B9$9%'5%"%123C'9'128%G5'=5%"9%<:'5P7%L$1$"7%T'B09$C(>%D:LTH?%=2342%97"7$9%72"7%$M$08%13$4$%'(%G5'=C$;#$%6B97%0$10$9$57$;%35%"%935#C$?%B5"6F3#B'B9?%"5;%"B72'037"73M$%="8%35%72$%9897$6@X'%7239%$5;?%,$':\"5#'%$942$=9%72$%;B1C34"73'5%'(%4';$@

,$':\"5#'%$[1"5;9%B1'5%:\"5#'P9%(0"6$='0G%F8%";;35#%"%5B6F$0%'(%6';$C9%"99'43"7$;%=372%#$'91"73"C%7$425'C'#3$9?%"C'5#%=372%9'6$%0$C"7$;%7''C9%7'%361'07?%$[1'07?%"5;%6"5"#$%;"7"@,$':\"5#'P9%";635%357$0("4$%10'M3;$9%"5%d1$5`"8$09%357$0("4$%72"7%6"8%F$%B9$;%7'%6';3(8%"5;%6"5"#$%91"73"C%;"7"%97'0$;%35%72$%;"7"F"9$@,$':\"5#'%"CC'=9%;$M$C'1$09%7'%FB3C;%1'=$0(BC%"11C34"73'5%B935#%!'97,-.%=372'B7%G5'=35#%.c`?%!'97,-.%91$43(349?%$74@

!"#$%&j%'(%)*

Page 11: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

47,/8#(),*<,L",(7($3X2$%,$':\"5#'%9897$6%4'593979%'(%9$M$0"C%357$#0"7$;%4'61'5$579J,$':\"5#'?%C3G$%:\"5#'?%39%=0377$5%35%!872'5?%"5;%0$IB30$9%"%!872'5%M$093'5%'(%+@U%'0%#0$"7$0@:\"5#'%R%72$%=$F%(0"6$='0G%72"7%10'M3;$9%72$%F"939%('0%,$':\"5#'?%:\"5#'%10'M3;$9JX2$%dF\$47R0$C"73'5"C%6"11$0%DdLYH%"CC'=9%;$M$C'1$09%7'%;$(35$%;"7"%6';$C9%35%!872'5?%"5;%B9$%"%;85"634%;"7"F"9$R"44$99%Z!-%7'%4'55$47%7'%"5;%6"5"#$%;"7"%35%72$%;"7"F"9$@Z5%ZB7'6"734"CC8%#$5$0"7$;%";6353970"73M$%357$0("4$@EC$#"57%AL`%.B11'07aB3C7R-5%X$61C"735#%.897$6aB3C7R35%K''G9%7'%e"42$%9897$69.B11'07%('0%6BC73RC"5#B"#$%"11C34"73'59

Z%91"73"C%;"7"F"9$eB00$57C8?%,$':\"5#'%10'M3;$9%9B11'07%('0%!'97#0$.c`%D=372%!'97,-.H?%Y8.c`?%"5;%d0"4C$%.1"73"C@T'BPCC%C3G$C8%(35;%72$%F$97%9$7%'(%($"7B0$9%"5;%9B11'07%=372%72$%!'97,-.%91"73"C%$[7$593'59%7'%!'97#0$.c`@

,$':\"5#'%B9$9%9$M$0"C%,$'91"73"C%C3F0"03$9JJ,Ed.%R%Z5%d1$5%.'B04$%,$'6$708%E5#35$%D"C9'%0$IB30$;%('0%!'97,-.HX239%6"8%F$%;'=5C'";$;%"5;%3597"CC$;%(0'6%2771Jgg70"4@'9#$'@'0#g#$'9g

!LdQ@U%R%Z%4"07'#0"1234%10'\$473'5g0$10'\$473'5%C3F0"08

!"#$%&&%'(%)*

-5%7239%7B7'03"C?%=$PCC%('4B9%$[4CB93M$C8%'5%B935#%72$%!'97,-.%91"73"C%$[7$593'59%7'%!'97#0$.c`@

Page 12: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

X239%6"8%F$%;'=5C'";$;%"5;%3597"CC$;%(0'6%2771Jgg70"4@'9#$'@'0#g10'\g,:Z`%R%Z%,$'91"73"C%:"7"%ZF970"473'5%`3F0"08%DB9$;%('0%361'07g$[1'07%'(%;"7"?%"6'5#%'72$0%7235#9H@X239%6"8%F$%;'=5C'";$;%"5;%3597"CC$;%(0'6%2771Jgg===@#;"C@'0#g

!"#$%&+%'(%)*

Page 13: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

5(3$#&&%()*P*<,(G%)-.%()47,/8#(),*<,L",(7($3

!"#$%&*%'(%)*

Page 14: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

47,/8#(),*2.7Q>7R-%3%$73:\"5#'%39%F"9$;%'5%!872'5?%"5;%"9%9B42%0$IB30$9%!872'5%"9%"%10$R0$IB3937$@Z9%'(%&&g+jj)?%:\"5#'%;'$9%5'7%10'M3;$%9B11'07%('0%!872'5*jjjP9%B14'635#%0$C$"9$?%"5;%37P9%B5C3G$C8%72"7%!872'5*jjj%=3CC%F$%9B11'07$;%('0%9'6$%736$%"(7$0%0$C$"9$@,$':\"5#'?%"7%"%63536B6?%0$IB30$9%1872'5%+@U%'0%23#2$0%R%72'B#2%37%39%0$4'66$5;$;%8'B%B9$%72$%C"7$97%97"FC$%+@[%0$C$"9$%'(%!872'5%=2$5%1'993FC$@

T'B%4"5%0B5%!"#$%&'(()*+,-%&%7'%;$7$0635$%72$%M$093'5%'(%!872'5%8'B%4B00$57C8%2"M$?%"5;%

B1#0";$%3(%5$4$99"08@:\"5#'%357$#0"7$9%4C'9$C8%=372%72$%=$F%9$0M$0?%"5;%35%1"0734BC"0?%37%39%B9$;%7'%10'4$99%"58%(3C$9%72"7%"0$%0$IB$97$;%M3"%72$%9$0M$0@Z9%9B42?%35%'0;$0%7'%B9$%:\"5#'?%8'BPCC%5$$;%7'%2"M$%"%=$F%9$0M$0%3597"CC$;@

:\"5#'%B73C3W$9%"%;"7"F"9$%('0%72$%;"7"%6';$C@T'BPCC%5$$;%7'%2"M$%"%;"7"F"9$%3597"CC$;%35%'0;$0%7'%B9$%:\"5#'@%.B11'07$;%;"7"F"9$9%03#27%5'=%354CB;$%!'97#0$.c`?%Y8.c`?%"5;%.c`37$@%X2$%0$4'66$5;$;%D"5;%"0#B"FC8%72$%6'97%4'66'5%;"7"F"9$%B9$;%=372%:\"5#'H%39%!'97#0$.c`@

!"#$%&U%'(%)*

:\"5#'%;'$9%2"M$%379%'=5%=$F%9$0M$0%8'B%4"5%B9$%('0%7$9735#?%FB7%379%#$5$0"CC8%0$4'66$5;$;%72"7%8'B%B9$%"5%$57$01039$R#0";$%9$0M$0?%9B42%"9%Z1"42$%'0%--.@

,$':\"5#'%39%5'=%354CB;$;%35%72$%6"3C%F0"542%'(%:\"5#'%4';$@%%Z9%9B42?%72$%3597"CC"73'5%'(%,$':\"5#'%39%72$%9"6$%"9%72$%3597"CC"73'5%'(%:\"5#'@

Page 15: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

-5%'0;$0%7'%='0G%=372%8'B0%;"7"F"9$?%8'BPCC%5$$;%7'%$59B0$%72"7%72$%"110'103"7$%;"7"F"9$%;03M$0%39%3597"CC$;@%%-5%72$%4"9$%'(%!'97#0$.c`?%8'BPCC%5$$;%P1984'1#+P%D2771Jgg===@3537;@'0#H@

,$':\"5#'%0$IB30$9%72"7%72$%('CC'=35#%4'61'5$579%F$%3597"CC$;J,Ed.%R%Z5%d1$5%.'B04$%,$'6$708%E5#35$%D"C9'%0$IB30$;%('0%!'97,-.HX239%6"8%F$%;'=5C'";$;%"5;%3597"CC$;%(0'6%2771Jgg70"4@'9#$'@'0#g#$'9g

!LdQ@U%R%Z%4"07'#0"1234%10'\$473'5g0$10'\$473'5%C3F0"08X239%6"8%F$%;'=5C'";$;%"5;%3597"CC$;%(0'6%2771Jgg70"4@'9#$'@'0#g10'\g

,:Z`%R%Z%,$'91"73"C%:"7"%ZF970"473'5%`3F0"08%DB9$;%('0%361'07g$[1'07%'(%;"7"?%"6'5#%'72$0%7235#9H@X239%6"8%F$%;'=5C'";$;%"5;%3597"CC$;%(0'6%2771Jgg===@#;"C@'0#g

!"#$%&V%'(%)*

Page 16: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

<1,,3%()*#*/#$#F#37eB00$57%M$093'5%'(%,$':\"5#'%10'M3;$%9B11'07%('0%720$$%;"7"F"9$9J!'97#0$.c`%B935#%72$%1984'1#%"5;%1984'1#+%;03M$09@%%X2$%0$4'66$5;$;%;03M$0%39%1984'1#+?%FB7%8'B%4"5%B9$%M$093'5%&%"9%=$CC@%%-5%7239%7B7'03"C?%=$PCC%B9$%!'97#0$.c`%=372%1984'1#+Y8.c`%B935#%72$%Y8.c`;F%1"4G"#$@%%X239%1"4G"#$%39%"M"3C"FC$%"7%2771Jgg9(@5$7g10'\$479g689ICR1872'5g%@d0"4C$%B935#%72$%10'103$7"08%d0"4C$%;03M$09

,$':\"5#'%9B11'079%"CC%'(%72$9$%;"7"F"9$9%35%72$%9"6$%6"55$0?%9'%=2342%8'B%42''9$%7'%B9$%2$0$%6"G$9%C377C$%;3(($0$54$?%9354$%$M$087235#%39%4';$;%35%72$%9"6$%="8@O2$5%8'B%6'M$%7'%8'B0%'=5%;$M$C'16$57%9897$6?%8'BPCC%5$$;%7'%42''9$%"%;"7"F"9$%F"9$;%'5%8'B0%5$$;9%"5;%72$%9'(7="0$%;$1C'8$;%35%8'B0%$57$01039$@

!"#$%&]%'(%)*

Page 17: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

/,0(&,#9%()*P*5(3$#&&%()*/8#(),:\"5#'%4"5%F$%;'=5C'";$;%(0'6%2771Jgg===@;\"5#'10'\$47@4'6g;'=5C'";gO$%2"M$%72$%'173'5%'(%;'=5C'";35#%72$%C"7$97%'((343"C%0$C$"9$?%=2342%39%72$%0$4'66$5;$;%0'B7$@-(%8'B%($$C%C3G$%C3M35#%'5%72$%$;#$?%8'B%4"5%"C9'%;'=5C'";%72$%<='0G%35%10'#0$99>%0$C$"9$%(0'6%72$%.BFM$093'5%9'B04$%4';$%4'570'C%9897$6@-5%'0;$0%7'%;'=5C'";%M3"%9BFM$093'5?%8'BPCC%5$$;%7'%2"M$%"%9BFM$093'5%4C3$57%3597"CC$;%"5;%4'5(3#B0$;%"9%=$CC@

d54$%8'BPM$%;'=5C'";$;%72$%C"7$97%:\"5#'%"0423M$?%8'BPCC%5$$;%7'%B51"4G%"5;%3597"CC%37@A51"4G35#%37%35M'CM$9%B935#%72$%P7"0P%4'66"5;%7'%$[70"47%72$%9'B04$%(3C$9@d54$%7239%39%;'5$?%8'BPCC%5$$;%7'%4;%357'%72$%:\"5#'%9'B04$%;30$47'08%"5;%399B$%72$%4'66"5;%F$C'=%"9%72$%B9$0%P0''7PJ!"#$%&',*#.!/!"'-&,#011

a$%9B0$%8'B%"0$%C'##$;%35%"9%0''7%D'0%B935#%72$%9B;'%4'66"5;H%=2$5%8'B%399B$%7239%'5%72$%`35B[gA53[%1C"7('06?%9354$%:\"5#'%=3CC%0$IB30$%";6353970"73M$%03#279%('0%72$%3597"CC"73'5%10'4$99@X239%4'66"5;%='0G9%72$%9"6$%'5%O35;'=9%"9%37%;'$9%35%72$%`35B[%$5M30'56$57?%8'B%\B97%5$$;%7'%6"G$%9B0$%8'B%4"CC%72$%4'00$47%357$010$7$0@

!"#$%&)%'(%)*

!"#$%&'#()*$#+,!"#$%&'-./0+$#%!0&'-./0+$12345678#%!0&'#()*$#+,199:;%(!$099

!"#$%&'()*&'+)',&-./0'+1"+'$20()$34'"5*'67"53)'"-&'.52+"%%&*'()--&(+%08

Page 18: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

<.7#$%()*#*2,3$45!*/#$#F#37-5%'0;$0%7'%40$"7$%"%!'97,-.%;"7"F"9$?%=$%5$$;%7'%;'%"%($=%7235#9%D35%72$%97$19%F$C'=?%=$PCC%40$"7$%"%!'97,-.%;"7"F"9$%4"CC$;%P68#$'PHJ

&@ e'55$47%7'%8'B0%0B5535#%3597"54$%'(%!'97#0$.c`%DM3"%72$%19IC%4C3$57H%"5;%399B$%72$%P40$"7$%;"7"F"9$P%4'66"5;@<%;/&;'-/&/=/(;'")+;$>

+@ _0'6%72$%4'66"5;%C35$%D5'7%19ICH%10'617?%";;%72$%!`g!#.c`%C"5#B"#$%7'%72$%5$=%;"7"F"9$J?@AB53C=!0C*%;/&;D/0+'#D#+(ED'")+;$

*@ A9$%72$%19IC%7''C%7'%C'";%72$%PC=1'97#39@9ICP%(3C$%357'%8'B0%;"7"F"9$J?@AB53C=!0C#(ED'F-'")+;$'FG'CH(%CD$*/DC#+(EDC(I/%;CDJ#$(&+!(1(ED

U@ `'";%72$%E!.,%4''0;35"7$%9897$6%35('06"73'5%357'%72$%;"7"F"9$J?@AB53C=!0C#(ED'F-'")+;$'FG'CH(%CD$*/DC#+(EDC(I/%;C(#/&!/D9%;G9()(1(ED

d54$%8'BPM$%40$"7$;%72$%;"7"F"9$?%"5;%3597"CC$;%72$%'F\$479?%37%39%1'993FC$%7'%B9$%72$%;"7"F"9$%"9%"%<7$61C"7$>%('0%(B7B0$%;"7"F"9$9@*%;/&;'-/&/=/(;'H(/+;$'J!&I'&;"#D/&;'")+;$>

X2$%4'66"5;%"F'M$%='BC;%40$"7$%72$%PB9"#$'P%;"7"F"9$%F8%4C'535#%72$%'F\$479%"C0$";8%35%P68#$'P@%%h'7$%72"7%3(%8'B%97'0$%";;373'5"C%;"7"%35%68#$'?%37%='BC;%#$7%4C'5$;%"9%=$CC@

!"#$%&b%'(%)*

O23C$%37%39%1'993FC$%7'%4C'5$%"5%$5730$%;"7"F"9$%"5;%379%4'57$579%B935#%72$%<=372%7$61C"7$>%97"7$6$57?%;'35#%9'%39%#$5$0"CC8%5'7%0$4'66$5;$;@%%A9$%72$%4'66"5;%7'%'5C8%4C'5$%<F"934>%;"7"F"9$9%72"7%"0$%<7$61C"7$9>%('0%'72$09@

Page 19: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

<.7#$%()*47,/8#(),*S,97&3

!"#$%&i%'(%)*

Page 20: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

<.7#$%()*#*?70*2.,87N$O2$5%8'B%97"07%"%5$=%:\"5#'%10'\$47?%72$0$%"0$%"%($=%7235#9%8'B%92'BC;%5'7$J_3097?%8'B0%10'\$47%(3C$9%='5P7%D92'BC;%5'7H%$[397%B5;$0%72$%;'4B6$57%0''7%'(%8'B0%=$F%9$0M$0@O$PCC%4'5(3#B0$%72$%=$F%9$0M$0%C"7$0%R%9'%37%4"5%(35;%=2"7%37%5$$;9%R%%FB7%#$5$0"CC8?%1B7735#%8'B0%4';$%B5;$0%"%=$FR"44$993FC$%;30$47C8%6"G$9%37%C$99%9$4B0$@

T'BPCC%5$$;%7'%40$"7$%"%;30$47'08%7'%97'0$%8'B0%10'\$47?%"5;%72$5%B9$%72$%;\"5#'R";635@18%940317%7'%40$"7$%72$%5$=%10'\$47%(3C$9@230&4%(025-&/!"',#0+#!+%3*6#'!"#$

X2$%97"0710'\$47%"0#B6$57%7$CC9%72$%4'66"5;%72"7%=$%5$$;%37%7'%35373"C3W$%"%5$=%:\"5#'%10'\$47@X2$%5"6$%"0#B6$57%"CC'=9%B9%7'%91$43(8%72$%5"6$%'(%72$%10'\$47%7'%F$%40$"7$;@O2$5%72$%4'66"5;%0B59?%37%=3CC%40$"7$%"%5$=%;30$47'08%4"CC$;%5"6$%35%72$%4B00$57%;30$47'08?%"5;%1'1BC"7$%37%=372%"%($=%(3C$9J

77-&-#77/!"%J%Z%(3C$%72"7%4"B9$9%!872'5%7'%70$"7%72$%;30$47'08%"9%"%1"4G"#$@

50&04*/!"J%Z%4'66"5;%C35$%B73C378%7'%4'66B534"7$%=372%:\"5#'@

,*##-&4,/!"J%e'5(3#B0"73'5%9$7735#9%('0%72$%10'\$47@

.+1,/!"J%AL`%;$4C"0"73'59%('0%72$%10'\$47@%%X2$%AL P̀9%7$CC%:\"5#'%=2"7%7'%;'%=2$5%4$07"35%AL P̀9%

"0$%1B7%357'%72$%F0'=9$0@

!"#$%+j%'(%)*

d5%A53[%D"5;%`35B[H%9897$69?%72$%;\"5#'R";635@18%4'66"5;%=3CC%F$%"5%$[$4B7"FC$%B5;$0%8'B0%9897$6%!ZXK@%%Z9%"%0$9BC7?%8'B%4"5%\B97%781$%35%72$%4'66"5;%7'%0B5%37@d5%O35;'=9%9897$69?%7239%940317%5'06"CC8%#$79%3597"CC$;%35%72$%P.403179P%;30$47'08%B5;$0%8'B0%!872'5%3597"CC"73'5?%9'%8'BPCC%5$$;%7'%$372$0%";;%72"7%;30$47'08%7'%8'B0%9$"042%1"72?%'0%0B5%72$%4'66"5;%F8%91$43(835#%72$%(BCC%1"72%7'%72$%(3C$@

Page 21: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

d54$%8'BPM$%40$"7$;%8'B0%10'\$47?%8'B%4"5%7$97%37%F8%97"0735#%B1%72$%:\"5#'%;$M$C'16$57%9$0M$0@T'B%4"5%97"07%72$%9$0M$0%B935#%72$%4'66"5;J!"#$%&'50&04*/!"'+.&,*+)*+

X239%4'66"5;%=3CC%97"07%B1%72$%9$0M$0%"5;%C397$5%'5%1'07%bjjj%'(%8'B0%9897$6@T'B%4"5%B9$%8'B0%=$F%F0'=9$0%7'%4'55$47%7'%72$%9$0M$0%B935#%72$%AL`%72$%4'66"5;%0$7B059@

X2$%;$M$C'16$57%9$0M$0%39%3;$"C%('0%;$M$C'16$57?%9354$%37%="742$9%8'B0%4';$%('0%42"5#$9?%"5;%0$C'";9%72$%(3C$9%=2$5$M$0%5$4$99"08@X239%"CC'=9%8'B%7'%6"G$%42"5#$9%"5;%B1;"7$%8'B0%4';$?%"5;%7$97%37%;30$47C8%M3"%72$%F0'=9$0%R%=372'B7%2"M35#%7'%0$97"07%9$0M34$9?%$74@

!"#$%+&%'(%)*

CK'#)&I$01;L;'"/0/+;1#)'%H0(;%:;%2/D!-/&!0+'"$-;D(111M';%%$%('G$H0-

N./0+$':;%(!$0'O1M1,'G!0/DP'H(!0+'(;&&!0+('Q-;"$1(;&&!0+(QN;:;D$#";0&'(;%:;%'!('%H00!0+'/&'I&&#RCCO,S1M1M1ORTMMMCUH!&'&I;'(;%:;%'J!&I'<V4WFA43BX1

9:55.53'+1&'67"53)'*&,&%)$#&5+';&<'2&-,&-8

Page 22: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

O99%()*%(*47,/8#(),.354$%,$':\"5#'%39%"%4'5703FB7$;%"11C34"73'5%7'%:\"5#'?%8'BPCC%5$$;%7'%6';3(8%8'B0%9$7735#9@18%9'%72"7%Pdjango.contrib.gisP%39%'5$%'(%72$%INSTALLED_APPS@O372'B7%7239?%6"58%'(%72$%#$'#0"1234%($"7B0$9?%kY`%937$6"19?%$74@%6"8%5'7%F$%"M"3C"FC$@

-5%'0;$0%7'%B9$%72$%,$'#0"1234%Z;635%357$0("4$%=372%d1$5.70$$7Y"19%D"9%72$%F"9$%C"8$0H?%72$5%8'B%6B97%";;%72$%.12$034"C%Y$04"7'0%10'\$473'5%357'%8'B0%!'97,-.%3597"CC"73'5?%7239%39%;'5$%B935#%72$%('CC'=35#J1C"/0/+;'(I;DDG%$"'-./0+$1*$0&%!=1+!(1H&!D(1(%('!"#$%&'/--9#$(&+!(9(%(/--9#$(&+!(9(%(YZMMZO[\

a$%9B0$%72"7%72$%B9$0%72"7%39%"44$9935#%72$%;"7"F"9$%2"9%=037$%"44$99g1$063993'59%7'%72$%91"73"Cl0$(l989%7"FC$?%'72$0=39$%37%=3CC%("3C%7'%1$0('06%72$%359$07%4'00$47C8@

!"#$%++%'(%)*

T'BPCC%5$$;%7'%6';3(8%8'B0%9$7735#9@18%(3C$%"9%"110'103"7$%=372%40$;$573"C9%7'%4'55$47%7'%!'97#0$.c`?%7$61C"7$%;30$47'08%C'4"73'59?%"5;%'72$0%0$C"7$;%;"7"@

X2'9$%97$19%"0$5P7%4'M$0$;%35%7239%7B7'03"C?%FB7%"0$%"CC%4'57"35$;%35%9$7735#9@18@

Page 23: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

<.7#$%()*#*?70*O""&%N#$%,(d54$%8'BPM$%40$"7$;%"%10'\$47?%8'BPCC%5$$;%7'%40$"7$%"5%"11C34"73'5@:\"5#'%6';$C9%"5;%M3$=9%"0$%2"5;C$;%720'B#2%72$%"11C34"73'5%379$C(%/%5'7%72$%10'\$47?%=2342%4'593979%'(%1036"03C8%72$%4'570'CC$0%"5;%F"9$%9$7735#9%D9B42%"9%;"7"%97'0$%35('06"73'5H

T'B%4"5%F$#35%"%5$=%"11%F8%'1$535#%"%92$CC%=35;'=%35%8'B0%10'\$47%;30$47'08%"5;%399B35#%72$%P97"07"11P%4'66"5;@`3G$%10'\$479?%8'B%92'BC;%"M'3;%B935#%0$9$0M$;%='0;9%('0%8'B0%"11%5"6$?%'72$0=39$%8'B%63#27%0B5%357'%10'FC$69%C"7$0@

d54$%8'BPM$%40$"7$;%"%5$=%"11%D'0%3597"CC$;%"5%"11%(0'6%"%7230;%1"078H?%8'BPCC%="57%7'%";;%37%7'%72$%C397%'(%-h.XZ``E:lZ!!.%35%8'B0%10'\$479%P9$7735#9@18P%(3C$@Z119%"0$%5'7%"47B"CC8%B9$;%B573C%72$8%"0$%3597"CC$;?%9'%8'BPCC%="57%7'%6"G$%9B0$%8'B%3597"CC%8'B0%"11?%'0%37%='5P7%F$%B9"FC$%35%8'B0%10'\$47@

!"#$%+*%'(%)*

"/0/+;1#)'(&/%&/##'J/];

Page 24: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

5L",.$%()*!"#$%#&*/#$#

!"#$%+U%'(%)*

Page 25: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

E17*47,/8#(),*/#$#*S,97&-5%'0;$0%7'%9B11'07%,$'.1"73"C%;"7"F"9$9?%,$':\"5#'%10'M3;$9%9'6$%$[7$593'59%7'%72$%5'06"C%:\"5#'%;"7"%6';$CJ

!"#$%&'($%# )$*+,(-.("/

?$!0&^!;D- Z%(3$C;%72"7%=3CC%4'57"35%1'357%;"7"@

W!0;5&%!0+^!;D- Z%(3$C;%72"7%=3CC%4'57"35%C35$%97035#%;"7"@

?$D)+$0^!;D- Z%97035#%72"7%=3CC%4'57"35%"%935#C$%1'C8#'5@

_HD&!?$!0&^!;D- Z%(3$C;%72"7%=3CC%4'57"35%6BC731C$%1'3579@

_HD&!W!0;5&%!0+^!;D- Z%(3$C;%72"7%=3CC%4'57"35%6BC731C$%C35$%97035#9@

_HD&!?$D)+$0^!;D- Z%(3$C;%72"7%=3CC%4'57"35%6BC731C$%1'C8#'59@

@;$";&%)<$DD;*&!$0^!;D- Z%(3$C;%72"7%=3CC%4'57"35%"%4'CC$473'5%'(%`35$%.7035#9?%!'3579?%"5;%!'C8#'59@

E"42%'(%72$9$%(3$C;9%2"9%7='%/01$#%"0#B6$579?%'5$%'(%=2342%39%0$IB30$;J903;%/%X2$%.1"73"C%L$($0$54$%.897$6%-;$573(3$0%D.L-:H%('0%72$%(3$C;@%%-(%5'7%10'M3;$;?%7239%;$("BC79%%7'%U*+]%DO,.bUH@91"73"Cl35;$[%/%-5;34"7$9%=2$72$0%"5%35;$[%92'BC;%F$%40$"7$;%('0%7239%(3$C;%D;$("BC79%7'%70B$H

,$5$0"CC8?%8'B0%;"7"%=3CC%;347"7$%72$%(3$C;%781$%7'%F$%B9$;@

!"#$%+V%'(%)*

Page 26: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

E17*47,S#(#)7.-5%'0;$0%7'%4'5970B47%91"73"C%IB$03$9?%$"42%6';$C%72"7%B73C3W$9%91"73"C%(3$C;9%6B97%4'57"35%"%,$'Y"5"#$0%6';$C%6"5"#$0@X2$%6';$C%6"5"#$0%39%0$IB30$;%7'%4'5970B47%10'1$0%91"73"C%IB$03$9?%"5;%=372'B7%37?%91"73"C%IB$03$9%=3CC%("3C@2&3$"!0/04$,&1"#$%&(*&,$56(,$#&7",&0/8&1"#$%&.90.&$(.9$,&6.(%(:$*&*-0.(0%&#0.0&7($%#*;&",&90*&0&,$%0.("/*9(-&<*6+9&0*&'",$(4/=$8>&."&0&.0?%$&.90.&6.(%(:$*&.9$*$&7($%#*@-(%"%6';$C%;'$9%5'7%4'57"35%"%,$'Y"5"#$0?%"5;%2"9%5'%91"73"C%(3$C;9?%37%=3CC%5'7%F$%B9"FC$%35%IB$03$9%72"7%C$M$0"#$%0$C"73'592319%F$7=$$5%37%"5;%91"73"C%;"7"F"9$%(3$C;9@

!"#$%+]%'(%)*

!"#$$%&'()()$*+,$)-.+/)"$01+/)"23%%%%/'$4('!4%5%.+/)"$067#(8')"/-.#9:"),;475<=>2%%%%#()#%5%.+/)"$08"+#48')"/-2%%%%"),%5%.+/)"$08"+#48')"/-2%%%%+?@)!4$%5%.+/)"$0A)+1#,#;)(-2%%%%;)+.%5%.+/)"$01B"4'C+"D;+,8')"/-$('/5<<E>F$*#4'#":',/)95G(B)2%%%%!"#$$%1)4#3%%%%%%%%H)(?+$):,#.):*"B(#"%5%I8'()%J)$*+,$)%K,'4%L()#$I%%%%/)&%::$4(::-$)"&23%%%%%%%%()4B(,%$)"&0/'$4('!4='2"#$%&'>&)67"53)'#)*&%':2.53'"'?:%+.@)%03)5A.&%*';.+1'!9B6'44CD'"5*'"'2$"+."%'.5*&E8

Page 27: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

T3%()*,).%(3"7N$*$,*47(7.#$7*S,97&3*P*S#""%()3.354$%=$%4"5%10'#0"66"734"CC8%;$7$0635$%72$%(3$C;9?%10'1$073$9?%"5;%'72$0%92"1$(3C$%;"7"?%37%97"5;9%7'%0$"9'5%72"7%=$%4"5%=037$%4';$%7'%2"M$%,$';\"5#'%"B7'6"734"CC8%;'%7239%('0%B9@X2$%'#03591$47%7''C%"B7'6"734"CC8%D=2$5%#3M$5%9'6$%"0#B6$579H%39%"FC$%7'%0$";%"5%361'07%(3C$?%"5;%#$5$0"7$%"%`"8$0Y"1135#%"5;%6';$C%;$(35373'5%(0'6%37@d54$%=$%2"M$%72$9$%7235#9?%379%'5C8%"%($=%97$19%6'0$%7'%"47B"CC8%B9$%72$%Y';$C%"5;%6"1135#%7'%361'07%;"7"%357'%'B0%;"7"F"9$@

d#03591$47%39%"5%"0#B6$57%72"7%39%1"99$;%357'%72$%6"5"#$@18%4'66"5;?%"5;%"44$179%9'6$%"0#B6$579JZ%;"7"%(3C$%7'%3591$47%D72$%92"1$(3C$HX2$%5"6$%'(%72$%6';$C%7'%#$5$0"7$Z58%"0#B6$579g'173'59%7'%1"99%35@Z0#B6$579%"0$%10$4$;$;%F8%"%9$7%'(%;'BFC$%2812$59?%"5;%"0$%78134"CC8J

!"#$%+)%'(%)*

X2$%'#03591$47%7''C%#$5$0"7$9%"%6';$C%72"7%6"742$9%"%#3M$5%92"1$(3C$?%72B9%9"M35#%B9%72$%='0G%'(%;$(3535#%'B0%6';$C%F8%2"5;@

X2$%7''C%"C9'%#$5$0"7$9%"%`"8$0Y"1135#%/%"%6"1135#%72"7%4'570'C9%72$%361'07%'(%;"7"%(0'6%72$%92"1$(3C$%357'%72$%;"7"F"9$@

A935#%'#03591$47?%=$%4"5%9G31%72$%7$;3'B9%10'4$99%'(%;$(3535#%F'72%'(%72$9$%6"5B"CC8@

.2"1$(3C$9%"0$%6";$%B1%'(%U%;3(($0$57%4'61'5$57%(3C$9JX2$%@921%(3C$%2'C;9%#$'6$708%;"7"@X2$%@92[%(3C$%2'C;9%"%91"73"C%35;$[%D"5;%39%5'7%0$IB30$;HX2$%@;F(%(3C$%4'57"359%'F\$47%6$7"R;"7"@X2$%@10\%(3C$%4'57"359%10'\$473'5%35('06"73'5@

Page 28: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

RR903;mnnnn%R%X'%91$43(8%72$%.L-:%('0%72$%#$'#0"1234%(3$C;%35%72$%6';$C@RR6"1135#%/%X$CC9%'#03591$47%7'%#$5$0"7$%72$%6';$C%"5;%6"1135#%D'72$0=39$%37%\B97%;'$9%72$%6';$CHRR6BC73%/%-5;34"7$9%72"7%!'C8#'5%(3$C;9%92'BC;%F$%40$"7$;%"9%YBC73!'C8#'5_3$C;9%

X2$%'B71B7%'(%72$%4'66"5;%6"8%F$%4'13$;%;30$47C8%357'%8'B0%6';$C9@18%(3C$%('0%8'B0%"11C34"73'5@

!C"4$%72$%6';$C%72"7%'#03591$47%#$5$0"7$9%35%8'B0%6';$C9@18%(3C$@T'BPCC%C3G$C8%5$$;%7'%6';3(8%72$%6';$C%/%('0%$["61C$?%(3$C;9%"0$%#$5$0"7$;%"9%0$IB3035#%M"CB$9?%FB7%8'B0%;"7"%63#27%C$"M$%9'6$%(3$C;9%FC"5G@Z;;%35;$[%35('06"73'5%"9%"110'103"7$%F"9$;%'5%72$%6$72';9%72"7%8'B%B9$%7'%C'4"7$%;"7"@e2"5#$%35;$[g3;$573(3$0%(3$C;9%"9%5$4$99"08@

."M$%72$%`"8$0Y"1135#%35%"%9$1"0"7$%(3C$%72"7%8'B%4"5%C"7$0%B9$%7'%FBCGRC'";%8'B0%92"1$%(3C$%($"7B0$9%"5;%"7703FB7$;%357'%8'B0%;"7"F"9$@

!"#$%+b%'(%)*

0M.#,#;)0*D%+;(',$*)!4%NN$('/5TT;4%NN.#**',;%ON.B"4'%P#Q):R*),:S*#!)0$7*%+*),:$*#!)

!"#$%&':2&')/'+1&')3-.52$&(+'+))%'+)'3&5&-"+&'"'#"$$.53'"5*'F"0&-?"$$.538

Page 29: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

5(3$#&&%()*$17*S,97&*%(*$17*/#$#F#37d54$%8'BPM$%40$"7$%"%6';$C%('0%$"42%'(%8'B0%92"1$(3C$9?%8'B%4"5%B9$%72$%97"5;"0;%P9854;FP%"0#B6$57%7'%6"5"#$@18%7'%40$"7$%72$%6';$C%35%72$%;"7"F"9$J./manage.py syncdbX239%4'66"5;%=3CC%1B92%72$%6';$C%357'%72$%;"7"F"9$?%"5;%399B$%72$%"110'103"7$%40$"7$%7"FC$%4'66"5;9?%$74@

T'B%4"5%5'=%4'55$47%7'%72$%;"7"F"9$?%"5;%B9$%72$%"110'103"7$%;"7"F"9$%4'66"5;9%7'%M$03(8%72"7%72$%6';$C%2"9%F$$5%40$"7$;@

!"#$%+i%'(%)*

Table "public.wake_fireresponse" Column | Type | Modifiers ----------+------------------------+----------------------------------------------------- id | integer | not null default nextval('wake_fireresponse_id_seq') district | character varying(254) | not null area | double precision | not null len | double precision | not null geom | geometry | not nullIndexes: "wake_fireresponse_pkey" PRIMARY KEY, btree (id) "wake_fireresponse_geom_id" gist (geom)Check constraints: "enforce_dims_geom" CHECK (ndims(geom) = 2) "enforce_geotype_geom" CHECK (geometrytype(geom) = 'MULTIPOLYGON'::text OR geom IS NULL) "enforce_srid_geom" CHECK (srid(geom) = 2264)

G1&'@)2+3-&!HF'+"<%&'+1"+'.2'(-&"+&*';1&5'+1&'#)*&%'*&/.5&*'.5'+1&'$-&,.):2'&E"#$%&'.2'.52+"%%&*'.5'+1&'*"+"<"2&8

L$6$6F$0?%8'BPCC%5$$;%7'%";;%8'B0%5$=%"11C34"73'5%7'%8'B0%9$7735#9@18%-h.XZ``E:lZ!!.%9$473'5%'72$0=39$%8'B0%"11%6';$C%='5P7%F$%3597"573"7$;%35%72$%;"7"F"9$@

Page 30: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

5L",.$%()*/#$#*T3%()*$17*;#+7.S#""%()&@ e0$"7$%"%5$=%3597"54$%'(%"%`"8$0Y"1135#%'F\$47@%

&(+.%/@#,;+0!+,4('?0;'$0B4'"$%'.*+(4%T#D)(1#**',;%%%%%%U%V.*+(4%T#D)(1#**',;&(+.%W#Q)0.+/)"$%'.*+(4%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%U%V.*+(4%47)%.+/)"$".%5%T#D)(1#**',;-.+/)"58'()J)$*+,$)F%%%%%%%%%%%%%%%%%%U%6()#4)%47)%R?@)!4

%%%%%%%%%%%%%%%%%%%%%%%%/#4#5I$7#*)$MP#Q):8'()J)$*+,$):<YYZ:[<0$7*IF%%%%%%%%%%%%%%%%%%%%%%%%.#**',;5.#**',;F%%%%%%%%%%%%%%%%%%%%%%%%),!+/',;5I"#4',N[I2

X2$%'F\$47%5$$;9%7'%F$%1"99$;%35%9$M$0"C%5"6$;%"0#B6$579%DL$IB30$;%"0#B6$579%"0$%35%F'C;?%%72$%0$6"35;$0%"0$%'173'5"C@%%L$4'66$5;$;%"0#B6$579%"0$%35%37"C349HJ

2,461$/. )$*+,(-.("/

5%2*1 X2$%#$'#0"1234%6';$C%72"7%=$%"0$%6"1135#%357'%D5'7%"5%3597"54$%'(%72$%6';$C?%"9%72$%6"11$0%=3CC%40$"7$%3597"54$9%'5%379%'=5H

20#0 X2$%(3C$%7'%F$%361'07$;%D"%97035#H?%'0%"%0$($0$54$%7'%"%:"7".'B04$%3597"54$@

50!!-&4 X2$%6"1135#%;3473'5"08%40$"7$;%35%72$%10$M3'B9%97$1@

D/);% X2$%35;$[%'(%72$%C"8$0%7'%B9$%(0'6%72$%;"7"%9'B04$%DB9$;%=2$5%72$%;"7"%9'B04$%2"9%6BC731C$%C"8$09H@%%:$("BC7%39%j@

!"#$%*j%'(%)*

Page 31: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

2,461$/. )$*+,(-.("/

($H%*;9(%( _'0%.2"1$(3C$9%D"5;%'72$0%9'B04$%(3C$9H%=372'B7%10'\$473'5%;"7"?%7239%6"8%F$%B9$;%7'%91$43(8%72$%91"73"C%0$($0$54$%9897$6%'(%72$%9'B04$%;"7"@

!"#$%&"' A9$;%7'%91$43(8%72$%42"0"47$0%$54';35#%'(%72$%9'B04$%(3C$%D('0%$["61C$?%PC"735R&PH@%%X239%39%B9$;%7'%9$7%72$%4C3$57%$54';35#%7'%$59B0$%72"7%72$%"110'103"7$%42"0"47$0%9$7%70"59C"73'59%'44B0%F$7=$$5%72$%4C3$57%"5;%9$0M$0@

&%/0(/*&!$09"$-; E372$0%P4'6637l'5l9B44$99P%'0%P"B7'4'6637P?%35;34"7$9%2'=%;"7"%=3CC%F$%4'66377$;%7'%72$%;"7"F"9$@%%:$("BC7%39%P4'6637l'5l9B44$99P%@

&%/0(G$%" -(%9$7%7'%_"C9$?%7239%=3CC%;39"FC$%"B7'6"734%4''0;35"7$%9897$6%70"59('06"73'5@%%-(%9$7%7'%("C9$?%35M"C3;%;"7"%6"8%F$%1C"4$;%35%"%7"FC$@

H0!EH; -(%1"99$;%35%=372%"5%"0#B6$57%'(%(3$C;%5"6$9?%72$%361'07%=3CC%"77$617%7'%6"G$%72'9$%5"6$9%B53IB$%F8%";;35#%($"7B0$9%=372%72$%9"6$%<G$89>%7'%"%935#C$%($"7B0$%9$7@

+@ A9$%72$%9"M$DH%6$72';%'(%72$%`"8$0Y"1135#%'F\$47%7'%9"M$%72$%;"7"%357'%72$%;"7"F"9$@".0$#H)-H)(?+$)5G(B)2

X2$%9"M$DH%6$72';%"44$179%9$M$0"C%5"6$;%"0#B6$579J

!"#$%*&%'(%)*

Page 32: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

2,461$/. )$*+,(-.("/

G!-9%/0+; O2$5%10'M3;$;%=372%"%7B1C$%72"7%4'57"359%"%F$#35%"5;%$5;%M"CB$%DF$#35?%$5;H?%7239%=3CC%'5C8%361'07%($"7B0$9%=37235%72$%91$43(3$;%0"5#$@

#%$+%;(( O2$5%10$9$57?%97"7B9%35('06"73'5%=3CC%F$%10357$;%#3M35#%72$%5B6F$0%'(%($"7B0$9%10'4$99$;%"5;%9"M$@%%X239%'44B09%('0%$M$08%&jjj%($"7B0$9%F8%;$("BC7?%'0%72$%M"CB$%91$43(3$;%F8%10'#0$99%D3@$@?%10'#0$99m&jjH

(!D;0& .B110$99%"58%5'5R("7"C%$00'0%5'73(34"73'59@

(&;# -99B$%70"59"473'5%4'6637%97"7$6$579%$M$08%97$1%357$0M"C%D3@$@?%97$1m&j%0$9BC79%35%"%4'6637o%$[$4B7$;%('0%$M$08%&j%($"7B0$9%";;$;H

(&%;/" Z44$179%"%(3C$%2"5;C$%"5;%=037$9%97"7B9%35('06"73'5%7'%72$%2"5;C$%D'72$0=39$%989@97;'B7%39%B9$;H

(&%!*& Y"1135#%=3CC%97'1%"9%9''5%"9%"5%$00'0%39%$54'B57$0$;%D;$("BC7%39%7'%4'5735B$H

:;%=$(; O2$5%9$7%7'%X0B$?%35('06"73'5%39%10357$;%('0%$"42%0$4'0;%9"M$;%35%72$%;"7"F"9$@

!"#$%*+%'(%)*

Page 33: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

47,/8#(),*!"#$%#&*U-7.%73

!"#$%**%'(%)*

Page 34: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

OF,-$*!"#$%#&*;,,V-"3A5C3G$%0$#BC"0%IB$03$9?%=2342%C''G%('0%<6"742$9>?%91"73"C%IB$03$9%0$C8%'5%37$69%9B42%"9%;397"54$%"5;%10'[36378@X2$9$%($"7B0$9%"0$%10'M3;$;%B935#%"%91$43"C%9$7%'(%IB$08%'1$0"7'09%72"7%"0$%4'66'5%"40'99%6'97%91"73"C%;"7"F"9$9%DG5'=5%"9%72$%d,e%.361C$%_$"7B0$9%('0%.c`%91$43(34"73'5H@

,$':\"5#'%$[7$5;9%72$%:\"5#'%dF\$47R0$C"73'5"C%6';$C%7'%";;%"%5B6F$0%'(%91"73"C%IB$08%6$72';9@

!"#$%*U%'(%)*

Page 35: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

<,(3$.-N$%()*47,L7$.%73a$('0$%=$%4"5%0B5%IB$03$9%72"7%"59=$0%IB$973'59%9B42%"9%<2'=%6"58%2'B9$9%"0$%=37235%&%63C$%'(%68%2'B9$N>%=$%5$$;%7'%#$5$0"7$%"%#$'6$708%72"7%0$10$9$579%<68%2'B9$>@X2$%,Ed.%9$7%'(%C3F0"03$9%6"8%F$%B9$;%7'%#$5$0"7$%#$'6$703$9?%B935#%"%10$R;$(35$;%9$7%'(%'F\$47%4C"99$9%72"7%0$10$9$57%#$'6$703$9@E"42%'(%72$9$%4C"99$9%DB9$;%7'%#$5$0"7$%#$'6$703$9H%"44$17%"9%351B7%"%9$7%'(%1'3579%"5;%.L-:%35('06"73'5?%"5;%0$7B059%"5%3597"54$%'(%"%,Ed.,$'6$708%'F\$47@X2$%,Ed.,$'6$708%'F\$47%39%72$5%1"99$;%357'%"%91"73"C%IB$08%DF8%#$5$0"735#%"%,$'_3C7$0cB$08.$7H?%"5;%72$5%6"8%F$%$[$4B7$;%"#"3597%#$'6$708%35('06"73'5%35%72$%;"7"F"9$@

X2$%7"FC$%F$C'=%;$9403F$9%72$%4C"99$9%72"7%6"8%F$%B9$;%7'%#$5$0"7$%,Ed.,$'6$708%'F\$479J

A%0** )$*+,(-.("/

?$!0&Y\ Z44$179%"9%"0#B6$579%"%9$7%'(%S?%T?%"5;%p%4''0;35"7$9%Dp%4''0;35"7$9%"0$%'5C8%B9$;%('0%*:p%#$'6$703$9H?%"5;%"5%.L-:%D35%72"7%'0;$0H@%h"6$;%"0#B6$579%"0$%P[P?P8P?PWP?%"5;%P903;P@

W!0;5&%!0+Y\ ,$5$0"7$9%"%`35$%.7035#@%%X239%6"8%"44$17%"9%"0#B6$579%"%C397?%7B1C$?%'0%"00"8@%%X2$%M"CB$9%1"99$;%35%92'BC;%F$%[?8%4''0;35"7$%1"309%"5%903;%

!"#$%*V%'(%)*

&(+.%/@#,;+0!+,4('?0;'$0;)+$%'.*+(4%XB5')-*&-'+)'3&5&-"+&'>IJ!')<7&(+2K'0):'#:2+'.#$)-+'+1&'"$$-)$-."+&'>IJ!'#)*:%&'()#$)5&5+28

Page 36: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

A%0** )$*+,(-.("/

"0#B6$57%6"8%"C9'%F$%10'M3;$;@

?$D)+$0Y\ ,$5$0"7$9%"%!'C8#'5@%%-5%7239%4"9$?%"%7B1C$%'(%7B1C$9%92'BC;%F$%10'M3;$;?%35;34"735#%72$%#$'6$708@%%X239%39%$99$573"CC8%72$%9"6$%"9%10'M3;35#%OkX%35('06"73'5%('0%"%1'C8#'5%=372%"%9$03$9%'(%1'3579?%\B97%=372'B7%72$%OkX%4'61'5$579@

.'6$%$["61C$9%'(%40$"735#%5$=%#$'6$708%'F\$479%"0$%92'=5%35%72$%7"FC$%F$C'=J

BC01-%$ )$*+,(-.("/

&(+.%/@#,;+0!+,4('?0;'$0;)+$%'.*+(4%X*%5%C+',4-<YZZ\E\0]]EF%Z>Y<Z]0[]\F%<<E>2*<%5%C+',4-95<YZZ\E\0]]EF%D5Z>Y<Z]0[]\F%$('/5<<E>2

,$5$0"7$%"%,Ed.%,$'6$708%'F\$47%0$10$9$5735#%"%1'357%35%.L-:%++]U@

&(+.%/@#,;+0!+,4('?0;'$0;)+$%'.*+(4%X*<%5%C+',4-<YZZ\E\0]]EF%Z>Y<Z]0[]\2

X2$%9"6$%"9%72$%10$M3'B9%$["61C$?%FB7%72$%.L-:%39%B5;$(35$;?%"5;%,$':\"5#'%=3CC%F$%B5"FC$%7'%1$0('06%"5%"B7'6"734%4''0;35"7$%9897$6%70"59('06"73'59%B935#%37@

&(+.%/@#,;+0!+,4('?0;'$0;)+$%'.*+(4%X"[%5%T',)S4(',;--<YZZ\E\0]]EF%Z>Y<Z]0[]\2F%%%%%%%%%%%%%%%%-<YZ\Z>Y0[\ZF%Z>Y[]^0=^E2F%%%%%%%%%%%%%%%%-<Y\\\\]0YYYF%Z<\^Y\0[Z\2F

,$5$0"7$%"%,Ed.%,$'6$708%'F\$47%0$10$9$5735#%"%C35$%D4'55$47%72$%;'79%D1'3579H%7'%('06%72$%C35$H@

!"#$%*]%'(%)*

Page 37: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

BC01-%$ )$*+,(-.("/

%%%%%%%%%%%%%%%%$('/5<<E>2

&(+.%/@#,;+0!+,4('?0;'$0;)+$%'.*+(4%X*+"D%5%C+"D;+,---<Y\E^<<0E<=[F%Z<\=ZZ0\=Y[<2F%%%%%%%%%%%%%%%-<Y\E^[^0E^E<F%Z<\=Z[0E\^Y2F%%%%%%%%%%%%%%%-<Y\E^[<0E<=[F%Z<\=\Z0\=Y[2F%%%%%%%%%%%%%%%-<Y\E^Y=0==>[F%Z<\=Z[0E\^Y2F%%%%%%%%%%%%%%%-<Y\E^Y<0E<=[F%Z<\=ZZ0\=Y[2F%%%%%%%%%%%%%%%-<Y\E^Y=0==>[F%Z<\=^=0Z<[[2F%%%%%%%%%%%%%%%-<Y\E^[<0E<=[F%Z<\=^Z0\=Y[2F%%%%%%%%%%%%%%%-<Y\E^[^0E^E<F%Z<\=^=0Z<[[2F%%%%%%%%%%%%%%%-<Y\E^<<0E<=[F%Z<\=ZZ0\=Y[22F%%%%%%%%%%%%%%%%$('/5<<E>2

,$5$0"7$9%"%!'C8#'5%'F\$47%B935#%"%9$03$9%'(%7B1C$9?%$"42%=2342%0$10$9$579%"%935#C$%1'357%35%"%C35$97035#@%%d72$0%D6'0$%";M"54$;H%1'C8#'59%6"8%F$%#$5$0"7$;%35%"%9363C"0%6"55$0?%"5;%$M$5%<2'C$9>%4"5%F$%4"0M$;%'B7%'(%"%1'C8#'5%F8%B935#%"%96"CC$0?%5'5R357$09$4735#%1'C8#'5%3593;$%"%C"0#$0%1'C8#'5@

O$PCC%B9$%72$9$%#$'6$703$9%=2$5%=$%$[$4B7$%IB$03$9?%"5;%,$':\"5#'%=3CC%"B7'6"734"CC8%0$7B05%"%,Ed.%,$'6$708%'F\$47%=2$5%=$%0$703$M$%;"7"%(0'6%"%#$'6$708%(3$C;%35%72$%6';$C@X239%6"G$9%37%$"98%7'%1$0('06%\'359%F$7=$$5%#$'6$708%4'CB659%35%7"FC$9?%"5;%"C9'%7'%#$5$0"7$%91"73"C%IB$03$9@

!"#$%*)%'(%)*

Z47B"CC8?%72$%;"7"F"9$%=3CC%0$7B05%;"7"%35%72$%O$CCRk5'=5%X$[7%'0%O$CCRk5'=5%a35"08%('06"7@%,$':\"5#'%=3CC%4'5M$07%72"7%7'%"%,Ed.%,$'6$708%'F\$47%=2$5%8'B%708%7'%"44$99%37@%%X239%P\B97%35%736$P%6$72';%9"M$9%='0G%3(%"%0$9BC7%0'=%39%5$M$0%$["635$;?%"5;%39%G5'=5%"9%"%<C"W8%#$'6$708>@

Page 38: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

47(7.#$%()*#*47,U-7.+!7$`3G$%:\"5#'P9%cB$08.$7?%"%,$'cB$08.$7%39%#$5$0"7$;%=2$5%=$%B9$%,$':\"5#'%4'61'5$579%7'%FB3C;%'B0%6';$C9@,$'cB$08.$79%"5;%cB$08.$79%"0$%M$08%9363C"0?%=372%72$%$[4$173'5%72"7%,$'cB$08.$7P9%2"M$%"%9$7%'(%$[70"%IB$08%6$72';9%72"7%6"8%F$%B9$;%7'%1$0('06%1'=$0(BC%91"73"C%9$"04235#%"5;%6"74235#%35%72$%;"7"F"9$@-5%72$%7"FC$%F$C'=%=$PM$%;$9403F$;%9'6$%'(%72$%4'66'5%DFB7%5'7%"CCH%IB$08%G$8='0;9%72"7%"0$%B9$;%=372%"%,$'cB$08.$7%/%72$9$%"0$%"5"C'#'B9%35%6"58%="89%D"5;%B9$;%35%72$%9"6$%="8H%"9%6$72';9%35%"%cB$08.$7?%=372%72$%'FM3'B9%;3(($0$54$%72"7%72$%"0#B6$57%7'%"%#$'6$7034%'1$0"73'5%=372%"%,$'cB$08.$7%39%"%,Ed.%,$'6$708%'F\$47@

D-$,0.", )$*+,(-.("/

*$0&/!0( X$979%=2$72$0%72$%(3$C;%4'57"359%72$%C''GB1%#$'6$708@%

*$:;%;-=) X$979%3(%5'%1'357%35%72$%#$'6$708%(3$C;%39%'B793;$%'(%72$%C''GB1%#$'6$708@

*$:;%( X$979%3(%5'%1'357%35%72$%C''GB1%#$'6$708%39%'B793;$%'(%72$%#$'6$708%(3$C;@

*%$((;( X$979%3(%"%#$'6$708%(3$C;%91"73"CC8%40'99$9%72$%C''GB1%#$'6$708@

!"#$%*b%'(%)*

Page 39: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

D-$,0.", )$*+,(-.("/

-!(.$!0& X$979%39%72$%C''GB1%(3$C;%39%91"73"CC8%;39\'357%(0'6%72$%#$'6$708%(3$C;@

-J!&I!0 X$979%3(%72$%(3$C;%39%=37235%72$%91$43(3$;%;397"54$%'(%72$%C''GB1%#$'6$708@%%X2$%1"0"6$7$0%39%"%7B1C$?%4'57"3535#%72$%C''GB1%#$'6$708?%"5;%72$%;397"54$%D$372$0%"%:397"54$%'F\$47?%'0%"%5B6$034%M"CB$%35%B5379H@%%X239%;'$9%5'7%='0G%('0%#$'#0"1234%4''0;35"7$%9897$69%D3@$@?%=2$0$%;$#0$$9%"0$%B9$;%"9%72$%B537H

;EH/D( X$979%3(%72$%#$'6$708%(3$C;%39%91"73"CC8%$IB"C%7'%72$%C''GB1%#$'6$708@

!0&;%(;*&( X$979%3(%72$%#$'6$708%(3$C;%"5;%C''GB1%#$'6$708%357$09$47@

$:;%D/#( X$979%39%72$%#$'6$708%(3$C;%91"73"CC8%'M$0C"19%72$%C''GB1%#$'6$708%D3@$@?%72$%'M$0C"1%6"8%F$%0$10$9$57$;%"9%"%1'C8#'5H@

J!&I!0 X$979%3(%72$%#$'6$708%(3$C;%39%91"73"CC8%=37235%72$%C''GB1%#$'6$708@

-!(&/0*;9D&;-!(&/0*;9+&;

X2$9$%6$72';9%"CC%"44$17%"%7B1C$%"9%"5%"0#B6$57%D72$%(3097%4'61'5$57%F$35#%72$%#$'6$708?%"5;%72$%9$4'5;%F$35#%72$%

!"#$%*i%'(%)*

Page 40: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

D-$,0.", )$*+,(-.("/

-!(&/0*;9D&-!(&/0*;9+&-J!&I!0

;397"54$H@%%X2$%0$9BC7%39%"%,$'cB$08.$7%72"7%0$7B059%72$%5B6F$0%'(%'F\$479%=37235%72$%;397"54$%91$43(3$;@%%

`3G$%"CC%:\"5#'%6';$C9?%8'B%4"5%B9$%72$%#$'6$708%(3$C;%D\B97%"9%8'B%4"5%"58%'72$0%(3$C;%781$H%35%"%(3C7$0J&$%5%&'()()$*+,$)0+?@)!4$0&'"4)(-;)+.::!+,4#',$5C+',4-<YZZ\E\0]]EF%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Z>Y<Z]0[]\F%$('/5<<E>22-5%72$%$["61C$%"F'M$?%=$%B9$%"%91"73"C%IB$08%7'%;$7$0635$%72$%(30$%97"73'5%72"7%63#27%0$91'5;%7'%"5%$6$0#$548%"7%72$%91$43(3$;%1'357@%%h'7$%72"7%0$10'\$473'5%=3CC%"B7'6"734"CC8%'44B0%3(%5$$;$;?%9354$%"5%.L-:%39%10'M3;$;@

!'97,-.%"C9'%2"9%"%5B6F$0%'(%<C'998>%C''GB19%72"7%D#$5$0"CC8H%('4B9%'5C8%'5%35;$[%35('06"73'5%D"5;%"0$%72B9%6B42%("97$0H@X2$9$%"0$%IB$08%4'61'5$579%9B42%"9%<FF4'57"359>%D7$97%3(%"%F'B5;35#%F'[%4'61C$7$C8%4'57"359%"5'72$0%F'B5;35#%F'[H?%<C$(7>%"5;%<03#27>%D;$7$0635$%3(%"%F'B5;35#%F'[%39%7'%72$%C$(7g03#27%'(%"5'72$0%F'B5;35#%F'[H?%$74@%%X2$9$%"0$%;'4B6$57$;%35%72$%,$':\"5#'%;'4B6$57"73'5?%FB7%"0$5P7%4'M$0$;%35%;$172%2$0$%D('0%736$%0$"9'59@H@

!"#$%Uj%'(%)*

Page 41: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

/%3"&#+%()*S#"*/#$#

!"#$%U&%'(%)*

Page 42: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

OF,-$*S#"*/#$#d54$%=$%2"M$%;"7"%3593;$%72$%;"7"F"9$?%=$%5$$;%7'%F$%"FC$%7'%M3$=%72$%;"7"%B935#%B9$0%6"19%D5'7%\B97%";635%6"19H@-5%'0;$0%7'%;'%7239?%=$%5$$;%7'%;$7$0635$%2'=%=$%="57%7'%;391C"8%72$%;"7"J:'%=$%;391C"8%72$%OkX%0$10$9$57"73'5%'(%'B0%;"7"%D2"0;%7'%M3$=%F8%B9$09H:'%=$%"77$617%7'%;391C"8%72$%;"7"%B935#%"%=$FR6"92B1%D9B42%"9%d1$5`"8$09HN:'%=$%9361C8%10'M3;$%"%9361C$%,$'Q.dh?%kY`?%,Y`?%'0%'72$0%357$0("4$%357'%72$%;"7"?%9'%37%6"8%F$%4'59B6$;%F8%'72$0%=$F%9$0M34$9N

,$':\"5#'%39%"FC$%7'%10'M3;$%;"7"%B935#%"58%'(%72$9$%6$72';9?%F8%40$"735#%97"5;"0;%:\"5#'%M3$=9%"5;%#$5$0"735#%72$%'B71B7%;"7"%0$IB30$;@-5%72$%4"9$%'(%d1$5`"8$09?%=$%10'F"FC8%5$$;%7'%91C37%7235#9%357'%"%($=%4'61'5$579%/%"%9$7%'(%M3$=%7'%10'M3;$%"%kY`?%,$'Q.dh?%'0%'72$0%357$0("4$%7'%970$"635#%;"7"%7'%72$%4C3$57?%"5;%"5'72$0%M3$=%7'%"47B"CC8%;391C"8%72$%F"934%;"7"@

!"#$%U+%'(%)*

Page 43: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

47(7.#$%()*:-$"-$*5($7.G#N73O2$5%=$%B9$%7''C9%C3G$%d1$5`"8$09?%,''#C$%E"072?%$74@%72$8%$[1$47%7'%#$7%C"8$0%;"7"%"9%"5%351B7%970$"6@%-5%'0;$0%7'%10'M3;$%7239?%72$0$%"0$%"%5B6F$0%'(%9B11'07$;%'B71B7%('06"79?%9B42%"9%,Y`?%kY`?%,$'Q.dh?%"5;%'72$09@,$':\"5#'%9B11'079%kY`?%,Y`%"5;%,$'Q.dh%'B71B7%('06"79%D\B97%7'%5"6$%"%($=H@

-5%'0;$0%7'%970$"6%C"8$0%;"7"?%=$PCC%5$$;%7'%#$5$0"7$%9'6$%F"934%M3$=9%72"7%$5"FC$%B9%7'%970$"6%;"7"%'B7%7'%"%4C3$57@`"7$0?%=$%4"5%B9$%72$9$%M3$=9%7'%"C9'%10'M3;$%6'0$%;$7"3C$;%35('06"73'5%/%9B42%"9%IB$08%1"0"6$7$09?%'0%"%9$7%'(%$[7$579%/%7'%$5"FC$%'B0%"11C34"73'5%7'%'5C8%'B71B7%B9$(BC%;"7"%D"9%'11'9$;%7'%$M$087235#H@

!"#$%U*%'(%)*

e$07"35%;"7"%('06"79%D9B42%"9%kY`H%0$IB30$%"%91$43(34%10'\$473'5%F$%B9$;%DkY`%B9$9%E!.,JU*+]H%@%Z9%"%0$9BC7?%8'B%=3CC%5$$;%7'%$59B0$%72"7%=2$5%8'B%#$5$0"7$%kY`?%72$%;"7"%8'B%1"99%35%2"9%"C0$";8%F$$5%70"59C"7$;%7'%72$%"110'103"7$%10'\$473'5@

Page 44: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

T3%()*47,/8#(),*!1,.$N-$3`3G$%:\"5#'?%,$':\"5#'%10'M3;$9%9$M$0"C%$"98R7'RB9$%92'074B79%7'%#$5$0"7$%F"934%'[email protected]'074B79%10'M3;$;%F8%,$':\"5#'%354CB;$J0$5;$0l7'lG6C%/%L$5;$09%72$%0$91'59$%"9%kY`?%B935#%72$%"110'103"7$%Y-YE%781$9?%$74@0$5;$0l7'lG6W%/%L$5;$09%"%4'610$99$;%kY`%97035#%"5;%0$7B059%37%"9%kYp%=372%72$%"110'103"7$%Y-YE%781$@0$5;$0l7'l7$[7%/%L$5;$09%72$%0$91'59$%B935#%"%1C"35%7$[7%Y-YE%781$

ZCC%72$9$%92'074B79%;'%39%7"G$%"%0$#BC"0%7$61C"7$%"5;%7$61C"7$%1"0"6$7$09?%"5;%0$5;$0%72$%7$61C"7$@X$61C"7$%0$5;$035#%='BC;%0$C8%'5%72$%,$'cB$08.$7%2"M35#%"%G6C%"7703FB7$?%=2342%39%B9$;%7'%$[70"47%kY`%;"7"@

Z%9"61C$%kY`%7$61C"7$%39%"M"3C"FC$%35%P937$R1"4G"#$9g;\"5#'g4'5703Fg#39g7$61C"7$9g#39gG6CPT'B%4"5%4'18%72$9$%7'%8'B0%'=5%P#39gG6CP%7$61C"7$%;30$47'08%7'%4B97'63W$%72$6@X2$%;$("BC7%(3C$9%"0$%PF"9$@G6CP%"5;%P1C"4$6"0G9@G6CP

!"#$%UU%'(%)*

Page 45: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

47(7.#$%()*WS;*:-$"-$T'B%4"5%5'=%#$5$0"7$%kY`%'B71B7%B935#%8'B0%;"7"%("30C8%$"93C8@

-5%72$%$["61C$%92'=5%2$0$?%=$%B9$%0$5;$0l7'lG6C%7'%#$5$0"7$%72$%'B71B7@X2$%1C"4$6"0G9@G6C%$[1$479%"%P1C"4$9P%7$61C"7$%M"03"FC$%72"7%4'57"359%72$%,$'cB$08.$7?%=2342%'(%4'B09$%5$$;9%7'%2"M$%"%G6C%"7703FB7$@

!C"4$6"0G9@G6C%=3CC%B9$%72$%5"6$%"5;%;$9403173'5%"7703FB7$9%'(%72$%'F\$47@X'%B9$%6'0$%72"5%72"7?%\B97%40$"7$%8'B0%'=5%4'18%'(%72$%(3C$%35%8'B0%7$61C"7$%;30$47'08%"5;%B9$%72"7%(3C$@

A935#%0$5;$0l7'lG6W%35%72$%9"6$%("923'5%='BC;%0$9BC7%35%4'610$99$;%'B71B7@T'B%4"5%4B97'63W$%72$%kY`%'B71B7%F8%6';3(835#%72$%P1C"4$6"0G9@G6CP%(3C$?%7239%"CC'=35#%8'B%7'%2"M$%6B42%6'0$%4B97'6%('06"77$;%;"7"@

!"#$%UV%'(%)*

&(+.%W#Q)%'.*+(4%.+/)"$&(+.%/@#,;+0$7+(4!B4$%'.*+(4%(),/)(:4+:()$*+,$)&(+.%/@#,;+0!+,4('?0;'$0$7+(4!B4$%'.*+(4%(),/)(:4+:Q."U%6()#4)%D+B(%H')W$%7)()0/)&%Q."-()_B)$423%%%%&'()()$*+,$)5.+/)"$0&'()()$*+,$)0+?@)!4$0Q."-2%%%%()4B(,%(),/)(:4+:Q."-`;'$MQ."M*"#!).#(Q$0Q."`F%aI*"#!)$I3%&'()()$*+,$)%b2='2"#$%&',.&;'+)'3&5&-"+&'L?F'):+$:+'()5+".5.53'"%%')/'+1&'/.-&'-&2$)52&'M)5&28

Page 46: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

-(%8'B%$["635$%72$%kY`%'B71B7?%8'BPCC%5'734$%72"7%"CC%72$%'B71B7%B9$9%72$%O,.bU%.L.@

!"#$%U]%'(%)*

Page 47: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

5($7).#$%()*:"7(;#+7.3

!"#$%U)%'(%)*

Page 48: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

OF,-$*:"7(;#+7.3d1$5`"8$09%39%"%Q"M".40317RF"9$;%C3F0"08%;$93#5$;%7'%;391C"8%"5;%6"5"#$%#$'91"73"C%;"7"%35%72$%=$F%F0'=9$0@O0377$5%$5730$C8%35%Q"M".40317?%d1$5`"8$09%2"9%5'%0$IB30$6$579%('0%4C3$57%='0G97"73'59%"93;$%(0'6%"%6';$05%O$F%+@j%4"1"FC$%=$F%F0'=9$0@d1$5`"8$09%9B11'079%6"58%97"5;"0;%('06"79%('0%;"7"%357$042"5#$%'M$0%72$%=$F?%354CB;35#J,$'Q.dhO$F%Y"1%.$0M34$9%DOY.HO$F%_$"7B0$%.$0M34$9%DO_.HkY`,Y`

d1$5`"8$09%2"9%72$%"F3C378%7'%1"09$%"5;%;0"=%M$47'0%"9%=$CC%"9%0"97$0%36"#$9?%"5;%4"5%4'570'C%70"591"0$548?%36"#$%'M$0C"89?%"5;%"%=3;$%0"5#$%'(%'72$0%4'66'5C8%B9$;%7$4253IB$9%('0%;391C"835#%6"1%;"7"%'5%72$%357$05$7@

!"#$%Ub%'(%)*

d1$5`"8$09%B5;$097"5;9%OY.%"5;%O_.%9$0M34$9?%9'%=$%4"5%4'5(3#B0$%37%7'%B73C3W$%'B0%Y"1.$0M$0%10'M3;$;%36"#$08%M3"%OY.%'0%O_.@%%O$%4"5%"C9'%B9$%Y"1.$0M$0%7'%4'570'C%($"7B0$9%72"7%"11$"0%D'0%;39"11$"0H%"7%;3(($0$57%W''6%C$M$C9%DB935#%YZS%"5;%Y-h%.eZ`E%YZ!%$C$6$579H%@

`3G$=39$?%=$%4"5%#$5$0"7$%<97"734>%36"#$9%('0%10357%'0%("[%3(%=$%G5'=%72$%C"8$09%72"7%"0$%9$C$47$;%35%d1$5`"8$09?%"5;%72$%$[7$579%'(%72$%36"#$@%%X239%#3M$9%B9%72$%"F3C378%7'%2"M$%"%534$%#0"1234"C%357$0("4$%('0%"%B9$0?%"5;%"%534$%="8%7'%10357%"%6"1%"9%37%C''G9%'5%940$$5%D=372'B7%B935#%72$%F0'=9$0H@

Page 49: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

>#3$7.*X3Y*M7N$,.*/#$#d1$5`"8$09%='0G9%F8%;391C"835#%"%F"9$%C"8$0%'(%35('06"73'5%D36"#$H%72"7%39%35%0"97$0%('06"7%D36"#$H@X2$%F"9$%C"8$0%;$7$0635$9%F"934%4''0;35"7$%9897$6%35('06"73'5?%"5;%39%78134"CC8%10'M3;$;%F8%9'6$%=$F%9$0M34$%R%9B42%"9%,''#C$%Y"19?%72$%d1$5.70$$7Y"1%10'\$47?%Y340'9'(7%^307B"C%.$0M$0?%T"2''qY"19?%A.,.%9B11C3$;%X'1'#0"1234%-6"#$08?%8'B0%'=5%d072'R36"#$08?%'0%9'6$%'72$0%9'B04$%;"7"@:"7"%'(%7239%781$%39%B9B"CC8%10'M3;$;%B935#%9'6$%97"5;"0;%6$42"5396?%9B42%"9%"%O$F%Y"1%.$0M34$%DOY.?%"%d,e%97"5;"0;H?%'0%M3"%9'6$%9B11'07$;%10'103$7"08%6$72';?%9B42%"9%72$%,''#C$%Y"19%Z!-@

Z9%8'BPM$%"C0$";8%9$$5?%,$':\"5#'%='0G9%1036"03C8%=372%M$47'0%;"7"?%"5;%39%#$5$0"CC8%B5"FC$%7'%10'M3;$%72$%B5;$0C835#%F"9$%C"8$0%;"7"%0$IB30$;%('0%d1$5`"8$09@X8134"CC8?%7239%C"8$0%4'6$9%(0'6%9'6$=2$0$%$C9$@A935#%7''C9%C3G$%AYh%Y"1.$0M$0?%8'B%4"5%B9$%72$%9"6$%!'97,-.%;"7"%7'%#$5$0"7$%8'B0%'=5%<F"9$>%6"1%36"#$9%R%=372'B7%0$C835#%'5%"%9$0M34$%10'M3;$0%9B42%"9%,''#C$@d(7$5?%7230;%1"073$9%72"7%10'M3;$%6"1%36"#$08%6"8%2"M$%C3637"73'59%'5%B9$?%"5;%63#27%42"5#$%72$30%C34$59$%7$069%"5;%4'5;373'59%=372'B7%103'0%5'734$%7'%B9$09@

d54$%"%0"97$0%F"9$%C"8$0%39%"M"3C"FC$?%=$%4"5%B9$%9$M$0"C%7$4253IB$9%7'%10'M3;$%C'=$0RC$M$C%6"1%;"7"%B935#%d1$5`"8$09@%

!"#$%Ui%'(%)*

Page 50: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

5(3$#&&%()*:"7(;#+7.3.354$%d1$5`"8$09%39%"%1B0$%Q"M".40317%361C$6$57"73'5?%=$%5$$;%5'7%3597"CC%"%C"0#$%"6'B57%'(%9$0M$0R93;$%4';$%35%'0;$0%7'%#$7%37%7'%='0G@:'=5C'";%72$%d1$5`"8$09%Q"M".40317%C3F0"08%"7%2771Jgg'1$5C"8$09@'0#g;'=5C'";g%@%%X2$0$%8'B%4"5%;'=5C'";%72$%C"7$97%M$093'5%'(%d1$5`"8$09@

d54$%;'=5C'";$;?%8'B%5$$;%7'%B51"4G%72$%d1$5C"8$09%C3F0"08%"5;%1C"4$%35%35%"%OOO%"44$993FC$%C'4"73'5@d5%"58%1"#$9%=2$0$%8'B%=392%7'%B9$%d1$5C"8$09?%8'B%92'BC;%";;%4';$%9363C"0%7'%72$%('CC'=35#%72$%72$%KEZ:%9$473'5%'(%8'B0%KXY`%1"#$D9HJ`(*%!#&'(%*abC7#;0D/);%(F,1TC7#;0W/);%(1.(bK`C(*%!#&K

X239%4"B9$9%72$%F0'=9$0%7'%C'";%72$%d1$5`"8$0%C3F0"08%4'61'5$579%357'%72$%F0'=9$0@d54$%C'";$;?%=$%4"5%B9$%d1$5`"8$09%4"CC9%7'%#$5$0"7$?%6"5"#$?%"5;%;391C"8%6"19@

.354$%d1$5`"8$09%39%=0377$5%35%1B0$%Q"M".40317?%=372%5'%9$0M$0R93;$%4'61'5$579?%37%0$IB30$9%72"7%"%10'[8%9$0M$0%F$%"M"3C"FC$%9'%72"7%37%4"5%1$0('06%OY.%"5;%O_.%0$IB$979%"#"3597%;3(($0$57%9$0M$09@X239%39%F$4"B9$?%('0%9$4B0378%0$"9'59?%Q"M".40317%"11C34"73'59%4"5%'5C8%4'57"47%72$%9$0M$0%(0'6%=2342%72$8%'03#35"7$@

!"#$%Vj%'(%)*

Page 51: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

<.7#$%()*#*?70*S#"-5%d1$5`"8$09?%6"19%"0$%#$5$0"7$;%"5;%1C"4$;%'5%"%=$F%1"#$@E"42%6"1%39%40$"7$;%B935#%72$%Pd1$5`"8$09@6"1P%4'5970B47'0@X2"7%6$"59%3(%8'B%="57%720$$%6"19%;391C"8$;?%8'BPCC%5$$;%7'%4"CC%720$$%9$1"0"7$%3597"54$9%'(%72$%4'5970B47'0@

O2$5%72$%'F\$47%39%(3097%40$"7$;?%37%2"9%5'%C"8$0%;"7"?%9'%8'BPCC%5$$;%7'%4"CC%72$%"110'103"7$%6$72';9%7'%";;%C"8$09%7'%72$%$[39735#%'F\$47@

O2$5%#$5$0"735#%"%5$=%6"1?%72$%4'5970B47'0%2"9%"%0$IB30$;%"0#B6$57%/%72$%5"6$%#3M$5%7'%72$%6"1@X2$%5"6$%91$43(3$;%0$10$9$579%72$%-:%('0%72$%6"1%'F\$47?%"5;%92'BC;%F$%;3973547%(0'6%'72$0%3;%7"#9%'5%72$%9"6$%=$F%1"#$@X2$%d1$5`"8$09%6"1%=3CC%0$703$M$%72$%978C$%9$7735#9%('0%72$%:-^%7"#%4'00$91'5;35#%7'%72$%-:%'(%72$%6"1?%"5;%93W$%72$%6"1%7'%6"742%72"7%93W$@-(%8'B%'637%93W$%35('06"73'5%('0%72$%r;3Ms%7"#?%72$%6"1%=3CC%5'7%F$%M393FC$%D37%=3CC%F$%7''%96"CCH@X239%6$72';%"CC'=9%B9%7'%93W$%6"19%"58=2$0$%35%'B0%1"#$?%=372%"0F370"08%93W$9@-(%72$%$[7$579%'(%72$%6"1%"0$%9B42%72"7%37%=3CC%5'7%(3CC%72$%"0$"?%8'BPCC%(35;%72"7%72$%6"1%39%10'1'073'5"CC8%93W$;%7'%(37%"%935#C$%;36$593'5%'(%72$%"0$"@Z9%8'B%W''6%35?%8'BPCC%(35;%72"7%72$%6"1%(3CC9%72$%"0$"@

-5%";;373'5%7'%72$%5"6$?%=$%4"5%91$43(8%"5%"00"8%'(%'72$0%6"1%'173'59?%"%9BF9$7%'(%=2342%39%92'=5%35%72$%7"FC$%F$C'=%D5'7$J%7239%39%5'7?%F8%"58%6$"59?%"%4'61C$7$%C397%'(%'173'59HJ

!"#$%V&%'(%)*

Page 52: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

D-.("/ )$*+,(-.("/

"/L3L&;0& Z%F'B5;9%'F\$47%72"7%35;34"7$9%72$%$[7$579%'(%7239%6"1@%X239%39%91$43(3$;%F8%40$"735#%"%F'B5;9%'F\$47%72"7%4'57"359%72$%$[7$579%'(%72$%6"1J,)W%R*),T#D)($0c+B,/$-NZ\^]\YYF%%%%%%%%%%%%%%%%%%%%%%%%><]>>]\F%%%%%%%%%%%%%%%%%%%%%%%NZ\[YZE^F%%%%%%%%%%%%%%%%%%%%%%%%>][[<E=2

#%$.;*&!$0 X2$%10'\$473'5%'(%7239%6"1@%%.1$43(3$;%"9%"5%d1$5`"8$09%!0'\$473'5%'F\$47J,)W%R*),T#D)($0C(+@)!4'+,-`dCSA3^YY^[]`2

H0!&( X2$%B5379%7'%B9$%=2$5%;391C"835#%72$%C"8$0@%%X239?%'(%4'B09$?%=3CC%$(($47%72$%94"C$R0$9'CB73'5@%%X2$%B5379%'(%.12$034"C%Y$04"7'0%"0$%6$7$09%DP6PH

N!(#D/)?%$.;*&!$0 O2$5%!0'\U\9%9B11'07%39%$5"FC$;?%7239%4"5%F$%B9$;%7'%0$10'\$47%B5;$0C835#%C"8$09%7'%72$%6"1%10'\$473'5@%%X2$%M"CB$%92'BC;%F$%"5%3597"54$%'(%"5%d1$5`"8$09@!0'\$473'5%'F\$47J0;J'7#;0W/);%(1?%$.;*&!$0YQ3?5@R,ZcMQ\

O2$5%9$7?%7239%10'\$473'5%=3CC%"11C8%7'%"58%4'570'C9%=372'B7%"%9$7%10'\$473'5%"9%72$8%"0$%";;$;%7'%72$%6"1?%4'570'CC35#%72$%B5379%"5;%'72$0%35('06"73'5%72"7%39%;391C"8$;%7'%72$%B9$0@

!"#$%V+%'(%)*

Page 53: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

h'7$%72"7%7239%C397%'(%'173'59%395P7%$[7$593M$?%"5;%72$9$%6"8%F$%42"5#$;%"(7$0%72$%6"1%39%#$5$0"7$;@

d54$%8'BPM$%;$7$0635$;%=2"7%9$7735#9%8'B%0$IB30$%('0%8'B0%6"1?%8'B%4"5%#$5$0"7$%72$%6"1J

e74."%9.",$5`744*3MMWWW0W]0+(;M[^^^M974."`f%e7)#/f%e4'4")fR*),T#D)($%d9#.*")eM4'4")f%egNN%S4D")%',&+(.#4'+,%&+(%47)%h.#*i%jVk%'$%'.*+(4#,4%NNfe$4D")%4D*)5`4)94M!$$`f%%%U.#*%a%%%%%%%%%W'/473%=[<*9l%%%%%%%%%7)';743%EYY*9l%%%%%%%%%?+(/)(3%[*9%$+"'/%U)))l%%%%%%b%eM$4D")f%e$!('*4%$(!5`MR*),T#D)($N<0ZMR*),T#D)($0@$`feM$!('*4f%e$!('*4%4D*)5`4)94M@#H#$!('*4`f%%H#(%.#*%5%,B""l%%&B,!4'+,%RT','4-2%a%%%%%%H#(%+*4'+,$%5%a%%%%%%%IB,'4$I%3%`.`F%%%%%%I,B.m++.T)H)"$I%3%[=F

!"#$%V*%'(%)*

Page 54: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

%%%%%%I*(+@)!4'+,I%3%,)W%R*),T#D)($0C(+@)!4'+,-`dCSA3^YY^[]`2F%%%%%%I.#9d94),4I%3%,)W%R*),T#D)($0c+B,/$-NZ\^]\YYF%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%><]>>]\F%NZ\[YZE^F%>][[<E=2F%%%%%%I/'$*"#DC(+@)!4'+,I3%,)W%R*),T#D)($0C(+@)!4'+,-`dCSA3>]<E`2F%%%%%%bl%%%%%%.#*%5%,)W%R*),T#D)($01#*-I.#*IF%+*4'+,$2l%%%%%%.#*0n++.G+1#9d94),4-2leM$!('*4f%eM7)#/f%egNN%j+,I4%','4'#"'n)%47)%.#*%B,4'"%47)%?+/D%%%%%%7#$%!+.*")4)/%"+#/',;%NNfe?+/D%+,"+#/5`','4-2`f%%%%%%%e/'H%'/5`.#*`feM/'Hf%eM?+/Df%eM74."f%

X2$%$["61C$%"F'M$%40$"7$9%"5;%C'";9%"%9361C$%6"1%=372%E!.,Jijji&*%D"G"%.12$034"C%Y$04"7'0H%@h'7$%72"7%72$%;$("BC7%.L.%39%E!.,JU*+]?%F'72%('0%72$%6"1%'F\$47?%"5;%"58%B5;$0C835#%C"8$0%'F\$479@

O372%0$C$"9$%+@]?%d1$5`"8$09%2"9%72$%"F3C378%7'%1$0('06%0$10'\$473'5%B935#%72$%!0'\UQ.%Q"M".40317%C3F0"08?%72'B#2%"7%10$9$57%37%9$$69%72"7%'5C8%"%C3637$;%9$7%'(%10'\$473'59%"0$%9B11'07$;@

!"#$%VU%'(%)*

Page 55: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

_'0%7239%0$"9'5?%8'B%92'BC;%"C="89%10'M3;$%8'B0%7"0#$7%E!.,%M"CB$%=2$5%0$IB$9735#%C"8$09%(0'6%OY.%'0%O_.%C"8$09@h'7$J%OY.%"5;%O_.%9$0M34$9%"0$%"FC$%7'%1$0('06%0$%10'\$473'5%"9%=$CC@

!"#$%VV%'(%)*

Page 56: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

S#(#)%()*;#+7.3d5$%=$PM$%40$"7$;%'B0%6"35%6"1%'F\$47?%=$%4"5%F$#35%7'%";;%C"8$09%7'%37@d1$5`"8$09%10'M3;$9%9B11'07%('0%"%=3;$%0"5#$%'(%;3(($0$57%C"8$0%781$9?%$"42%=2342%39%";;$;%F8%40$"735#%"%5$=%C"8$0%'F\$47?%"5;%72$5%";;35#%72$%C"8$0%'F\$47%7'%72$%6"1%379$C(@

E"42%C"8$0%781$%2"9%379%'=5%4'5970B47'0%72"7%=$%4"5%4"CC%7'%40$"7$%"5;%6"5"#$%72$%5$=%C"8$0@X239%6$42"5396%"CC'=9%B9%7'%2"M$%"%6"1%72"7%#$79%C"8$09%(0'6%"%9$7%'(%;391"0"7$%C'4"73'59?%"5;%72$5%;391C"8%72$6%"9%C"8$09%"CC%'5%72$%9"6$%d1$5`"8$09%6"1@`"8$09%4"5%F$%6"5"#$;?%;391C"8$;?%23;;$5?%"5;%42"5#$;%M3"%Q"M".40317%720'B#2%72$%d1$5`"8$09%Z!-@

X'%";;%"%5$=%C"8$0?%=$%5$$;%7'%C'4"7$%72$%781$%'(%C"8$0%=$%=392%7'%;391C"8%"5;%40$"7$%"5%'F\$47%('0%37@Z%92'07%C397%'(%C"8$0%781$9%39%C397$;%35%72$%7"FC$%F$C'=J

E08$,&F8-$ )$*+,(-.("/

A$L;( X2$%F'[$9%C"8$0%#$5$0"7$9%"%9$7%'(%:-^%7"#9%72"7%"0$%'M$0C"8$;%'5%7'1%'(%"%6"1@%%X239%#3M$9%72$%3610$993'5%'(%F'[$9%;0"=5%'5%72$%6"1@

@_W e0$"7$9%"%5$=%C"8$0%DM$47'0H%F8%1"0935#%72$%4'57$579%'(%"%,$'#0"128%Y"0GB1%`"5#B"#$%D,Y`H%(3C$@%%,Y`%39%"5%d,e%97"5;"0;@

@$$+D; A9$;%7'%";;%"%#''#C$%C"8$0%7'%"%6"1%D5'7$J%"%,''#C$%Y"19%Z!-%G$8%39%0$IB30$;%7'%B9$%,''#C$%Y"19H

!"#$%V]%'(%)*

Page 57: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

E08$,&F8-$ )$*+,(-.("/

@%!- A9$;%7'%40$"7$%"%,03;%C"8$0%('0%"%6"1@

X/_/# A9$;%7'%";;%"%k"Y"1%F"9$%C"8$0%7'%"%6"1@

_/#5;%:;% A9$;%7'%B9$%72$%Y"1.$0M$0%e,-%1"0"6$7$09%7'%B9$%Y"1.$0M$0%Dh'7$J%Y"1.$0M$0%4"5%"C9'%F$%B9$;%B935#%OY.%'0%O_.?%3(%4'5(3#B0$;%7'%10'M3;$%$372$0H

_/%];%( A9$;%7'%40$"7$%"%C"8$0%'(%6"0G$09@

2!%&H/D3/%&I A9$;%7'%";;%"%Y340'9'(7%^307B"C%E"072%C"8$0%7'%"%6"1@

d^5 A9$;%7'%";;%"%O$F%_$"7B0$%.$0M34$%C"8$0%7'%"%6"1@

d_5 A9$0%7'%";;%"%O$F%Y"1%.$0M34$%C"8$0%7'%"%6"1@

e/I$$ A9$;%7'%";;%"%T"2''q%Y"1%C"8$0%7'%"%6"1@

V;L& A9$;%7'%";;%7$[7%;"7"%7'%"%6"1@

E"42%'(%72$%;3(($0$57%C"8$0%'F\$479%39%#$5$0"7$;%F8%4"CC35#%72$%4'5970B47'0%('0%72$%'F\$47?%=372%$"42%4'5970B47'0%6$72';%2"M35#%"%;3(($0$57%9$7%'(%"0#B6$579%/%F"9$;%'5%72$%C"8$0%7'%F$%#$5$0"7$;@e'5970B47'09%"0$%#$5$0"CC8%'(%72$%('06%d1$5`"8$09@`"8$09@t5"6$u?%=2$0$%t5"6$u%39%0$1C"4$;%F8%72$%C"8$0%781$J:/%'J"('a'0;J'7#;0W/);%(1W/);%(1d_5Y\>

!"#$%V)%'(%)*

Page 58: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

:/%'+"/#'a'0;J'7#;0W/);%(1W/);%(1@$$+D;Y\:/%'_/#5;%:;%'a'0;J'7#;0W/);%(1W/);%(1_/#5;%:;%Y\

h'7$%72"7%$"42%'(%72$9$%6$72';9%2"9%379%'=5%9$7%'(%0$IB30$;%"0#B6$579%7'%3597"573"7$%72$%C"8$0@

O2$5$M$0%=$%";;%"%C"8$0%7'%72$%6"1?%=$%(3097%40$"7$%72$%'F\$47%7'%0$10$9$57%72$%C"8$0?%"5;%72$5%4"CC%72$%";;`"8$0DH%6$72';%'(%72$%6"1%'F\$47?%1"9935#%35%72$%C"8$0%'F\$47%=$%\B97%40$"7$;@

!"#$%Vb%'(%)*

Page 59: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

:"7(;#+7.3*I#37*;#+7.*>7R-%.7L7($O2$5$M$0%=$%;391C"8%6"1%;"7"%35%d1$5`"8$09?%=$%"0$%0$IB30$;%7'%10'M3;$%"7%C$"97%"%935#C$%5'5R70"591"0$57%D<F"9$>H%C"8$0@X2$%F"9$%C"8$0%39%B9$;%=2$5%;$7$063535#%M"03'B9%6"1%0$C"7$;%35('06"73'5?%9B42%"9%F'B5;35#%35('06"73'5?%"5;%35('06"73'5%"F'B7%6'B9$%1'9373'5?%$74@

`"8$09%72"7%"0$%<F"9$>%C"8$09%2"M$%72$30%<70"591"0$57>%'173'5%9$7%7'%("C9$@d1$5`"8$09%B9$9%72$%<70"591"0$57J%("C9$>%'173'5%7'%92'=%72$%F"9$%C"8$0%"9%"%F"9$%C"8$0%35%72$%`"8$0.=3742$0%4'570'C%D6'0$%"F'B7%7239%C"8$0H@Z5%"C7$05"73M$%7'%B935#%72$%`"8$0.=3742$0%4'570'C%39%7'%$5"FC$%"5;%;39"FC$%72$%C"8$0%;30$47C8%720'B#2%d1$5`"8$09@

O$%4"5%2"M$%6BC731C$%F"9$%C"8$09?%FB7%'5C8%"%935#C$%F"9$%C"8$0%=3CC%F$%;0"=5%"7%"%736$@

!"#$%Vi%'(%)*

e$!('*4%4D*)5`4)94M@#H#$!('*4`%%%%%%%%%%$(!5`744*3MM+*),$4())4.#*0+(;M+*),"#D)($MR*),S4())41#*0@$`feM$!('*4fe$!('*4%4D*)5`4)94M@#H#$!('*4`fH#(%+$.%5%,)W%R*),T#D)($0T#D)(0RS101#*,'Q-`R*),S4())41#*`2leM$!('*4f

='2"#$%&'<"2&'%"0&-':2.53'J$&5!+-&&+?"$8

Page 60: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

O99%()*HS!*P*HK!*;#+7.3*$,*#*S#"Z;;35#%5$=%OY.%'0%O_.%C"8$0%0$IB30$9%72"7%=$%40$"7$%"%C"8$0%'F\$47?%B935#%72$%d1$5`"8$09@`"[email protected]%'0%d1$5`"8$09@`"8$0@O_.DH%6$72';9@X2$%6$72';%"44$179%B1%7'%U%"0#B6$579JX2$%5"6$%'(%72$%C"8$0%DB9$;%('0%;391C"8%1B01'9$9HX2$%F"9$%AL`%('0%72$%C"8$0%D5'7$J%3(%72$%C"8$0%39%5'7%'5%72$%9"6$%9$0M$0%"9%72$%KXY`%(3C$?%8'BPCC%5$$;%7'%2"M$%"%10'[8%4'5(3#B0$;H@Z5%'F\$47%DvwH%4'57"3535#%G$8gM"CB$%1"309%0$10$9$5735#%72$%,$7Y"1%IB$08%97035#%1"0"6$7$09%"5;%M"CB$9@X239%"CC'=9%B9%7'%1"99%";;373'5"C%"0#B6$579g9$7735#9%7'%72$%,$7Y"1%0$IB$97%"#"3597%72$%OY.%9$0M34$@

Z%2"92%'(%C"8$0%'173'59%7'%"11C8%7'%72$%5$=%C"8$0@

!"#$%]j%'(%)*

H#(%W#Q):*(+*)(4D%5%,)W%R*),T#D)($0T#D)(0P1S-%%%%%`P#Q)%6+B,4D%C(+*)(4D%j#4#`F%%%%`744*3MM,'??")(0+4;N,!0!+.M!;'N?',MW#Q)o`F%%%%a%"#D)($3%IW#Q):*(+*)(4DIF%%%%%%4(#,$*#(),43%4(B)%bF%%%%a%'$c#$)T#D)(3%&#"$)F%%%%%%%+*#!'4D3%Y0=%b%2l.#*0#//T#D)(-W#Q):*(+*)(4D2l!"#$%&'N","!(-.$+'()*&'+)'"**'"'O?!'%"0&-'+)'"5'&E.2+.53'#"$8''G1&'+-"52$"-&5(0')/'+1&'%"0&-'.5*.("+&2 '.+'.2'"5'),&-%"0K'"5*'5)+'"'<"2&'%"0&-8

ZC72'B#2%d1$5`"8$09%9B11'079%0$10'\$473'5%'(%^$47'0%;"7"?%37%4"55'7%0$10'\$47%L"97$0%;"7"@%%_'0%72"7%0$"9'5?%=2$5$M$0%B935#%OY.%9$0M34$9?%=$%5$$;%7'%$59B0$%72"7%72$%OY.%9$0M34$9%72"7%=$%B73C3W$%0$7B05%;"7"%35%72$%9"6$%10'\$473'5%"9%72$%F"9$%C"8$0@X239%0$9703473'5%;'$9%5'7%$[397%('0%^$47'0%;"7"%D9B42%"9%O_.%9$0M34$9?%'0%,Y`%;"7"%(3C$9H@

Page 61: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

X239%='BC;%354CB;$%35('06"73'5%9B42%"9%72$%10'\$473'5%'(%72$%C"8$0?%$[7$579?%B5379?%94"C$9?%0$9'CB73'59?%$74@

!"#$%]&%'(%)*

Page 62: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

47,/8#(),*#(9*:"7(;#+7.3,$':\"5#'%10'M3;$9%;"7"%B935#%"%=3;$%0"5#$%'(%d1$5`"8$09%9B11'07$;%('06"79?%354CB;35#%,Y`?%,$'Q.dh?%"5;%kY`@X2$9$%('06"79%"0$%78134"CC8%0$IB$97$;%B935#%"%935#C$%0$IB$97?%9'%1"9935#%35%;"7"%B935#%72$9$%('06"79%4"5%F$%4B6F$09'6$%/%$91$43"CC8%9354$%72$%M3$=1'07%'(%72$%4B00$57%6"1%63#27%F$%96"CC%35%0$C"73'5%7'%72$%9'B04$%;"7"@

-5%'0;$0%7'%'M$04'6$%9'6$%'(%72$9$%C3637"73'59?%72$0$%"0$%9$M$0"C%7235#9%=$%4"5%;'%7'%4"B9$%d1$5`"8$09%7'%0$IB$97%;"7"%35%"%6'0$%3540$6$57"C%6"55$0@O$%4"5%4"B9$%d1$5`"8$09%7'%6"G$%O_.%781$%0$IB$979%D=372%"%a'B5;35#%a'[H%7'%,$':\"5#'@,$':\"5#'?%35%7B05?%4"5%B9$%72$%F'B5;35#%35('06"73'5%7'%#$5$0"7$%kY`%'B71B7%72"7%4'57"359%'5C8%72$%($"7B0$9%35%72$%0$IB$97$;%M3$=1'07@X239%6$"59%72"7%,$':\"5#'%'1$0"7$9%6B42%C3G$%"%kY`%9$0M$0@

O$%4"5%B9$%"%OY.%9$0M34$%7'%#$5$0"7$%"%<0"97$0>%36"#$%72"7%4'57"359%"%0$10$9$57"73'5%'(%72$%0$IB$97$;%C"8$0?%"5;%72$5%B9$%d1$5`"8$09%,$7_$"7B0$%4'570'C%7'%6"G$%91$43(34%0$IB$979%7'%,$':\"5#'%('0%";;373'5"C%;"7"@O$%4"5%;391C"8%"%6"1%"5;%"%96"CC%9$7%'(%;"7"?%"5;%10'M3;$%"%Q"M".40317%357$0("4$%7'%<";M"54$>%7'%"5'72$0%9$7%'(%0$4'0;9%D3@$@?%`-Y-X%&j?%`-Y-X%&j%d__.EX%&j?%`-Y-X%&j%d__.EX%+jH

!"#$%]+%'(%)*

Y"58%'(%72$%7$4253IB$9%;394B99$;%2$0$%6"8%"C9'%F$%361C$6$57$;%B935#%"%M"03$78%'(%'72$0%7$4253IB$9%"5;%7$425'C'#3$9@

Page 63: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

;%L%$%()*K7#$-.73*>7$-.(79*0%$1*47,/8#(),-7P9%1'993FC$%('0%d1$5`"8$09%7'%#$5$0"7$%IB$03$9%72"7%354CB;$%,EX%1"0"6$7$09%=372%"%aadS%G$8%72"7%4'57"359%"%9$7%'(%U%1'3579%72"7%6"G$%B1%72$%F'B5;35#%F'[%"0'B5;%72$%4B00$57%M3$=1'07@_0'6%7239%35('06"73'5?%=$%4"5%40$"7$%"%!'C8#'5%72"7%39%0$10$9$57$;%F8%72$9$%1'3579@O$%4"5%72$5%B9$%7239%=372%"%9361C$%PFF'M$0C"19P%IB$08%7'%0$7B05%"%C3637$;%9$7%'(%;"7"@

!"#$%]*%'(%)*

-5%7239%7B7'03"C%=$P0$%B935#%,$':\"5#'%7'%10'M3;$%72$%9"6$%9$0M34$9%72"7%4'BC;%D"0#B"FC8?%6'0$%$"93C8H%F$%10'M3;$;%B935#%"%,$7_$"7B0$%L$IB$97@%%K'=$M$0?%,$':\"5#'%4"5%7"G$%7235#9%"%97$1%(B072$0?%9B42%"9%C363735#%35('06"73'5%0$7B05$;%F"9$;%'5%"%B9$0%F$35#%C'##$;%35?%'0%B935#%91$43"CC8%#0"57$;%1$063993'59@

Page 64: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

X239%7$4253IB$%4"5%F$%B9$;%=372%"%=3;$%0"5#$%'(%;3(($0$57%C"8$09%7'%10'M3;$%<'5%72$%(C8>%#$5$0"73'5%'(%C'4"C3W$;%kY`%;"7"@

-5%'0;$0%7'%B73C3W$%9B42%"%9$0M34$?%d1$5`"8$09%='BC;%B9$%"%C"8$0%;$(35373'5%9B42%"9%72$%'5$%92'=5%2$0$@

!"#$%]U%'(%)*

H#(%W#Q):$!7++"$%5%,)W%R*),T#D)($0T#D)(0P8S-`S!7++"$`F%`MW#Q):$!7++"MQ."M`F%abF%% %%%%%%%%%%%%%%%%a%%*(+@)!4'+,3%,)W%R*),T#D)($0C(+@)!4'+,-`dCSA3>]<E`2F%% %%%%%%%%%%%%%%%%%%%&+(.#43%R*),T#D)($08+(.#40p1TF%% %%%%%%%%%%%%%%%%%%%&+(.#4R*4'+,$3%a%)94(#!4L44('?B4)$3%4(B)%bF%% %%%%%%%%%%%%%%%%%%%$4D")1#*3%,)W%R*),T#D)($0S4D")1#*-aI)94)(,#"A(#*7'!I3%Iqa;(#*7'!bIF%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I*+',4J#/'B$I3%[=b2%%%%%%%%%%%%%%%%%%%%b%2l.#*0#//T#D)(-W#Q):$!7++"$2l

!"#$%&'J$&5F"0&-2'()*&'+)'"**'"'OA!'%"0&-'+)'):-'#"$':2.53'>&)67"53)'L?F'):+$:+8''B5'+1.2'("2&K'+1&'&E+&-5"%>-"$1.('.5*.("+&2'+1&'.#"3&'/.%&'+1"+'21):%*'<&':2&*'"2'"5'.()5'/)-'+1&'/&"+:-&K'"5*'+1&':2&')/'PQR3-"$1.(SP'.5*.("+&2'+1"+'+1&'T9F'/)-'+1&'.#"3&'21):%*'()#&'/-)#'+1&'L?F'*"+"8''G1&':2&')/ 'J$&5F"0&-28A)-#"+8L?F'.5*.("+&2'+1"+'J$&5F"0&-2'21):%*'&E$&(+'U"5*'$"-2&V'"'L?F'-&2$)52&8

Page 65: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

!"#$%]V%'(%)*

"#D)($5a%IW#Q):$!7++"I3%%%a%I.+/)"I3%.+/)"$0$!7++"F%%%%%%%%%%%%%%%%%%%%%%%%%%%%I.#9&)#4B()$I3]Y%b%%bU%G7)%B("*#44)(,%&+(%47'$%.';74%?)%-(Ir-oCe"#D)(fsrMtu2MQ."MqIF%W#Q)0H')W$0Q."2/)&%Q."-()_B)$4F%"#D)(5v+,)23%%%%%%%%'&%"#D)(%,+4%',%"#D)($3%(#'$)%w44*>Y>%U%R,"D%#""+W)/%"#D)($%%%%4(D3%%%%%%%%??+95()_B)$40AdG0;)4-IccRxIF%()_B)$40AdG0;)4-I??+9I22%U%A)4%47)%ccRx%&(+.%47)%()_B)$4%%%%)9!)*43%%%%%%%%(#'$)%w44*>Y>%%%%%%%%%%%%U%,+%??+9o%v+%*#;)%&+(%D+Bg%%%%4(D3%%%%%%%%.',9F.',DF.#99F.#9D5s&"+#4-'2%&+(%'%',%??+90$*"'4-IFI2t%%U%;)4%47)%!++(/',#4)$000%%%%%%%%;)+.5C+"D;+,---.',9F.',D2F-.',9F.#9D2F-.#99F.#9D2F-.#99F.',D2F-.',9F.',D22F$('/5>]<E2%%%%)9!)*43%%%%%%%U%T+4$%+&%/'&&)(),4%)((+($%!+B"/%+!!B(0007#,/")%%%%%%%%(#'$)%w44*>Y>%%%%()$!+B,45"#D)($s"#D)(tsI.+/)"It0+?@)!4$0&'"4)(-;)+.::??+H)("#*$5;)+.20!+B,4-2%%%%'&%()$!+B,4%e%"#D)($s"#D)(tsI.#9&)#4B()$It3%%%U%T'.'4%4+%[YYY%&)#4B()$%.#9%%%%%%%%%()$5"#D)($s"#D)(tsI.+/)"It0+?@)!4$0&'"4)(-;)+.::??+H)("#*$5;)+.20Q."-2%U%T+!#4)%j#4#00%%%%%%%%"#D)(5I*"#!).#(Q$I%%%%%%%%()4B(,%(),/)(:4+:Q."-I;'$MQ."My$0Q."I%y%"#D)(F%aI;)+./#4#I3%()$F%I&')"/$I3%&')"/$F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I*"#!)$I3%()$b%2%%%%)"$)3%%%%%%%%%%%%%%%%U%4++%.#,D%&)#4B()$%4+%/'$*"#D%&+(%47'$%"#D)(%%%%%%%%()4B(,%(),/)(:4+:Q."-I;'$MQ."My$0Q."I%y%"#D)(F%ab2

='2"#$%&'>&)67"53)',.&;'+)'$-)(&22'"'-&W:&2+'/)-'2(1))%'%)("+.)5'*"+"8

Page 66: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

T3%()*$17*!7&7N$K7#$-.7*<,($.,&d5$%'(%72$%6'0$%B9$(BC%4'570'C9%361C$6$57$;%F8%d1$5`"8$09%39%72$%"F3C378%7'%B9$%72$%.$C$47_$"7B0$%4'570'C@X2$%.$C$47_$"7B0$%4'570'C%"CC'=9%B9%7'%7"G$%1'357R4C34G9%'5%M$47'0%C"8$09%"5;%4"CC%$M$579%;03M$5%F8%72'9$%9$C$479@

X2$%.$C$47_$"7B0$%4'570'C%"CC'=9%('0%2'M$0%$M$579%D9'6$7235#%2"11$59%=2$5%72$%6'B9$%2'M$09%'M$0%"%($"7B0$H?%"5;%72$%"F3C378%7'%9$C$47%6BC731C$%#$'6$703$9@X'%B73C3W$%72$%9$C$47_$"7B0$%4'570'C?%=$PCC%5$$;%7'%40$"7$%"%5$=%3597"54$%'(%72$%4'570'C?%1"9935#%35%"%C"8$0%72"7%72$%4'570'C%92'BC;%F$%"77"42$;%7'@d54$%40$"7$;?%=$%4"5%B9$%72$%P"473M"7$DHP%6$72';%7'%"473M"7$%72$%4'570'C?%"5;%72$%P;$"473M"7$DHP%6$72';%7'%97"07%"5;%97'1%72$%4'570'C@H#(%W#Q):$!7++"$:!+,4(+"%5%,)W%R*),T#D)($06+,4(+"0S)")!48)#4B()-W#Q):$!7++"$2l.#*0#//6+,4(+"-W#Q):$!7++"$:!+,4(+"2lW#Q):$!7++"$:!+,4(+"0#!4'H#4)-2l&B,!4'+,%W#Q):$!7++"$:+,C+*B*6"+$)-)H42%a%W#Q):$!7++"$:!+,4(+"0B,$)")!4-47'$0&)#4B()2l%%b&B,!4'+,%W#Q):$!7++"$:$)")!4-)H42%a%%%&)#4B()%5%)H40&)#4B()l%%%*+*B*%5%,)W%R*),T#D)($0C+*B*08(#.)/6"+B/-47'$0,#.)%u%`%C+*B*`F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&)#4B()0;)+.)4(D0;)4c+B,/$-20;)46),4)(T+,T#4-2F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,)W%R*),T#D)($0S'n)-[YYF[YY2F

!"#$%]]%'(%)*

X2$%.$C$47_$"7B0$%4'570'C%=3CC%='0G%'5%"58%C"8$0%781$%72"7%352$0379%(0'6%d1$5`"8$09@`"8$0@^$47'0@

Page 67: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%`e7<f`u&)#4B()0/#4#0,#.)"+,;%u%`eM7<f`F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,B""F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4(B)F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W#Q):$!7++"$:+,C+*B*6"+$)2l%%%&)#4B()0*+*B*%5%*+*B*l%%%*+*B*0&)#4B()5%&)#4B()l%%%.#*0#//C+*B*-*+*B*2lb&B,!4'+,%W#Q):$!7++"$:B,$)")!4-)H42%a%%%&)#4B()%5%)H40&)#4B()l%%%'&%-&)#4B()0*+*B*2%a%%%%%%*+*B*0&)#4B()%5%,B""l%%%%%%.#*0().+H)C+*B*-&)#4B()0*+*B*2l%%%%%%&)#4B()0*+*B*0/)$4(+D-2l%%%%%%&)#4B()0*+*B*5,B""l%%%bbW#Q):$!7++"$0)H),4$0+,-a%I&)#4B()$)")!4)/I3%W#Q):$!7++"$:$)")!4F%

%%%%%%%%%%%%%%%%%%%%I&)#4B()B,$)")!4)/I3%W#Q):$!7++"$:B,$)")!4%b2l%

-5%72$%$["61C$%92'=5%2$0$?%"%.$C$47_$"7B0$%e'570'C%39%";;$;%7'%72$%<="G$l942''C9>%C"8$0@O2$5%72$%6'B9$%<4C34G9>%'5%"%($"7B0$?%72$%'5_$"7B0$.$C$47%6$72';%39%4"CC$;%7'%35;34"7$%72$%($"7B0$%2"9%F$$5%9$C$47$;@O2$5%72$%6'B9$%<4C34G9%"="8>%(0'6%"%($"7B0$?%72$%<'5%_$"7B0$A5.$C$47%6$72';%39%4"CC$;%7'%

!"#$%])%'(%)*

Page 68: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

35;34"7$%72$%($"7B0$%2"9%F$$5%B59$C$47$;@

X2$9$%4"CCF"4G%(B5473'59%4"5%F$%B9$;%7'%#$5$0"7$%1'1B19?%0$6'M$%72$%($"7B0$?%'0%1$0('06%'72$0%C"8$0%'1$0"73'59@

!"#$%]b%'(%)*

Page 69: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

S#V%()*K7#$-.7*>7R-73$3*0%$1*47$K7#$-.7d1$5`"8$09%10'M3;$9%"%,$7_$"7B0$%0$IB$97%6$72';%72"7%6"8%F$%B9$;%7'%70"59C"7$%"%<4C34G>%'5%"%6"1%7'%"5%ZQZS%IB$08@X239%"CC'=9%,$':\"5#'%7'%0$91'5;%9361C$%4C34G9%'5%"%6"1?%0"72$0%72"5%2"M35#%7'%10'M3;$%"%=3;$%0"5#$%'(%;"7"@X2$%,$7_$"7B0$%6$72';%"C9'%"CC'=9%,$':\"5#'%7'%1$0('06%9$"042$9%'5%"5%";R2'4%F"939?%"5;%9$5;%72$%0$91'59$9%F"4G%7'%d1$5`"8$09@

-5%'0;$0%7'%B9$%,$7_$"7B0$?%=$%(3097%5$$;%7'%40$"7$%"%4'570'C%('0%37JH#(%*(+4+!+"%5%,)W%R*),T#D)($0C(+4+!+"0wGGC-a%&+(.#43%,)W%R*),T#D)($08+(.#40p1T-2F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%B("3%IMW#Q):*(+*)(4DMQ."M&)#4B()MI%b2lH#(%*$)")!4%5%,)W%R*),T#D)($06+,4(+"0A)48)#4B()-a%*(+4+!+"3%*(+4+!+"F%%%% %% %%!"'!Q3%4(B)F%%%% %% %%7+H)(3%&#"$)%b2l

-5%72$%$["61C$%"F'M$?%72$%10'7'4'C%'F\$47%35;34"7$9%72"7%72$%KXX!%10'7'4'C%92'BC;%F$%B9$;%7'%6"G$%72$%0$IB$97@X2$%('06"7%'(%72$%0$91'59$%39%kY`?%=2342%39%"C="89%0$7B05$;%35%E!.,JU*+]%D72"7%6$"59%72"7%=$PCC%5$$;%7'%0$10'\$47%72$%0$91'59$%7'%6"742%'B0%E!.,Jijji&*%10'\$473'5H@

d54$%=$PM$%40$"7$;%72$%4'570'C?%=$PCC%5$$;%7'%40$"7$%"%C"8$0%7'%97'0$%72$%0$9BC7@-5%7239%4"9$?%"%4C34G%6"8%F$%7B05$;%357'%"%($"7B0$%72"7%39%;0"=5%'5%72$%6"1%B935#%"5%d1$5`"8$09%

!"#$%]i%'(%)*

Page 70: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

M$47'0%C"8$0?%9'%=$%5$$;%7'%40$"7$%72$%C"8$0%"5;%";;%37%7'%'B0%6"1J

H#(%$)")!4%5%,)W%R*),T#D)($0T#D)(0k)!4+(-`S)")!4'+,`F%a/'$*"#DV,T#D)(SW'4!7)(3%&#"$)b2l.#*0#//T#D)($-.#*"#D)($0!+,!#4-$)")!422l

`"97C8?%=$%5$$;%7'%40$"7$%(B5473'59%72"7%"0$%4"CC$;%=2$5$M$0%"%4C34G%'44B09%'5%"%($"7B0$JW;$Z>5,)W%R*),T#D)($0C(+@)!4'+,-`dCSA3>]<E`2*$)")!40)H),4$0();'$4)(-`&)#4B()$)")!4)/`F%47'$F%&B,!4'+,-)2%a%%%)0&)#4B()0;)+.)4(D04(#,$&+(.-W;$Z>F.#*0*(+@)!4'+,2%%%$)")!40#//8)#4B()$-s)0&)#4B()t2l%%%q-`U&)#4B()/#4#`20!$$-`/'$*"#D`F%``2l%%%H#(%(+W$5``l%%%&+(%-H#(%H%',%)0&)#4B()0/#4#2%a%%%%%(+W$%u5%`e4(%!"#$$5z`(+Wz`fe4/f`%u%H0()*"#!)-M:M;FI%I2%u%%%%%%%%%%%%%%%`eM4/fe4/f`%u%)0&)#4B()0/#4#sHt%u%`eM4/feM4(f`l%%%b%%%q-`U&)#4B()4#?")`20#**),/-(+W$2l%%%b2l

*$)")!40)H),4$0();'$4)(-`&)#4B()B,$)")!4)/`F%47'$F%&B,!4'+,-)2%a%%%$)")!40().+H)8)#4B()$-s)0&)#4B()t2l%%%q-`U&)#4B()/#4#`20!$$-`/'$*"#D`F%`,+,)`2l%%%q-`U&)#4B()4#?")%0(+W`20().+H)-2l

!"#$%)j%'(%)*

Page 71: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

b2l

-5%72$%4';$%"F'M$?%=$%"C9'%B9$%"%92'07%('0%C''1%7'%1'1BC"7$%"%7"FC$%=372%"7703FB7$%35('06"73'5@X2$%";;_$"7B0$%"5;%0$6'M$_$"7B0$%6$72';9%'(%72$%P9$C$47P%C"8$0%"CC'=%B9%7'%";;g0$6'M$%'F\$479%(0'6%72$%;391C"8$;%C"8$0%'5$%"7%"%736$@

X2$%(35"C%97$1%39%7'%";;%72$%4'570'C%7'%72$%6"1%"5;%"473M"7$%37J.#*0#//6+,4(+"-*$)")!42l%%*$)")!40#!4'H#4)-2l%%

d54$%7239%39%;'5$?%=$%4"5%0$RC'";%72$%6"1%"5;%M$03(8%10'1$0%'1$0"73'5@

!"#$%)&%'(%)*

Page 72: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

U-73$%,(3J

!"#$%)+%'(%)*

Page 73: zing Your Data With PostGIS, GeoDjango _ Open Layers Presentation

!"#$%&'(#)$*+,-.+)/$0123#$456$ $7&,,2892((#/$:%$$4;<=6$ $*>&"#?$@5@AB=CA6@@@$ $D+E?$F==G44@GCCF=...A&'#"3#H>"&(&I)I,&1'AH&J

!"#$%&'()*+,--./,--0*1#23*425(3"6"'$*7%"8#9*:35;<*=66*%&'()>*%2>2%?2@;A2#%"@85)&"3*B3@*%2@&>)%&C8)&"3*"D*)(&>*@"58E23)*&3*&)>*83E"@&D&2@*D"%E*&>*B66"F2@

!"#$%#&%'%()*+,-.*/#$#*0%$1*2,3$45!647,/8#(),6*#(9*:"7(;#+7.3

H17.7*$,*47$*O(307.3Z?7[$*!$7"3X"G$%'B0%!872'5?%:\"5#'?%,$':\"5#'?%!'97#0$.c`?%!'97,-.%'0%'72$0%70"3535#J

9..-GHHIII@"-$/.$+9/"%"484,"6-@+"1!872'5@'0#%39%72$%4$570"C%937$%('0%;$M$C'16$57%"5;%;'4B6$57"73'5%'(%!872'5@e'610$2$593M$%;'4B6$57"73'5?%"C'5#%=372%='0G35#%$["61C$9?%39%72$0$%('0%8'B%7'%0$";%"5;%0$M3$=@

dPL$3CC8%"5;%Z99'43"7$9%'(($09%9$M$0"C%!872'5%F''G9?%354CB;35#J`$"0535#%!872'5!872'5%e''GF''G!0'#0"6635#%!872'5

d(%72$9$%F''G9?%=$%0$4'66$5;$;%72$%e''GF''G%"5;%!0'#0"6635#%!872'5%"9%5$[7%97$19%35%F$77$0%B5;$097"5;35#%!872'5@dX,%'(($09%"%=3;$%0"5#$%'(%";M"54$;%4'B09$9%0$C"7$;%7'%!872'5?%354CB;35#%:\"5#'?%,$':\"5#'?%Z;M"54$;%!872'5%70"3535#?%"5;%6'0$@%%e'57"47%B9%('0%6'0$%35('06"73'5%R%'0%('0%4B97'6%70"3535#%5$$;9@

!"#$%)*%'(%)*