рдЕрднрд┐рд╡рд╛рджрди, рд╣рдмреНрд░реЛрдЬрд╝рд┐рдЯреЗрд▓! рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЗрд╕
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
d3js.org рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡
рдПрд╕рд╡реАрдЬреА рдорд╛рдирдЪрд┐рддреНрд░ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдФрд░ рдпрд╣ рднреА рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдХрд┐ рд╡реЗрдм рдХреЗ рд▓рд┐рдП рднреВ-рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдлрд╛рдЗрдирд▓ рдореЗрдВ, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:

рдЖрдк рдЗрд╕ рдЖрдХрд░реНрд╖рдХ рдпрд╛рддреНрд░рд╛ рдХреЛ рдХрдЯ рдХреЗ рдиреАрдЪреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд╛рд░реНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдорд╛рдорд▓реЗред
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрд╕ рдЦрдВрдб рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдиреБрднрд╛рдЧ рдХреЗ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд▓рд┐рдВрдХред рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдЖрдЧреЗ рд╕рдордЭрддреЗ рд╣реИрдВред рдПрдХ рдирдХреНрд╢рд╛ рдХреНрдпрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд╕реНрддреБ рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред
рдЬреАрдЖрдИрдПрд╕ рд╕рд┐рд╕реНрдЯрдо рдЖрдорддреМрд░ рдкрд░ рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП
рд╢реЗрдкрдлрд╛рдЗрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд░реВрд╕ рдХрд╛ рдПрдХ рдирдХреНрд╢рд╛ рдмрдирд╛рдПрдВрдЧреЗ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЦреЛрдЬ рдЖрдкрдХреЛ
рдЬреАрдЖрдИрдПрд╕-рд▓реИрдм рдкрд░ рдореЗрд░реЗ рдЬреИрд╕реЗ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдПрдЧреАред рдореИрдВрдиреЗ
рдЕрд▓реНрдмрд░реНрд╕-рд╕рд╛рдЗрдмреЗрд░рд┐рдпрд╛ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЛ рдЪреБрдирд╛ред рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЕрдкрдиреА рдЖрдХреГрддрд┐ рдХреЛ
рдбрдмреНрд▓реНрдпреВрдЬреАрдПрд╕ 84 рдорд╛рдирдХ (рдЙрд░реНрдл рдИрдкреАрдПрд╕рдЬреА: 4326) рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ
рдкреНрд░рдХреНрд╖реЗрдкрдг рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде
Albers_Siberia.prj
:
+proj=aea +lat_1=52 +lat_2=64 +lat_0=0 +lon_0=105 +x_0=18500000 +y_0=0 +ellps=krass +units=m +towgs84=28,-130,-95,0,0,0,0 +no_defs
рдлрд┐рд░,
GDAL рдпрд╛ рдЗрд╕рдХреЗ
OGR рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддреЗ рд╣реИрдВред рдЗрди рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
рдХреНрд╡рд╛рдВрдЯрдо рдЬреАрдЖрдИрдПрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЬреНрдпрд╛рджрд╛ред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдХрдИ рд╢реЙрд░реНрдЯрдХрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ, рдЙрдирдореЗрдВ рд╕реЗ
OSGeo4W
, рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рд╣рдорд╛рд░реА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдирд┐рдореНрди рдлреЙрд░реНрдо рдХреА рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ:
ogr2ogr -f 'ESRI Shapefile' -s_srs Albers_Siberia.prj -t_srs EPSG:4326 input-fixed.shp input.shp
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рд╡рд╣ рд╢реЗрдкрдлрд╛рдЗрд▓ рдорд┐рд▓рд╛ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░, рдпрд╣ рд╣рдореЗрдВ рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ
рдЬреЗрдЬреЗрдиреНрд╕рди рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗред рдлрд┐рд░ рдЬрд┐рдпреЛрд╕рди рд╕реЗ рд╣рдо TopoJSON рдЙрддреНрдкрдиреНрди
рдХрд░рддреЗ рд╣реИрдВ , рдЬреЛ рдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдЯреЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпреЗ рдЪреАрдЬреЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд░реЗрд╢рд╛рди рди рд╣реЛрдВ, рдЬрд┐рдпреЛрд╕рди рднреА рдПрдХ рдЙрдкрдпреЛрдЧреА рдЪреАрдЬ рд╣реИ, рдпрд╣ рдХрд╛рдо рдЖ рд╕рдХрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХрдВрд╕реЛрд▓ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
ogr2ogr -f GeoJSON output.json input.shp
рд╣рдореЗрдВ рд╣рдорд╛рд░реА рдЬрд┐рдпреЛрд╕рди рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ, рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рдЬреАрдЖрдИрдПрд╕-рд▓реИрдм рд╕реЗ рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рджреЗрдЦреЗрдВред
рдЬреАрдЖрдИрдПрд╕-рд▓реИрдм рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рдирд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдХреГрддрд┐ рдореЗрдВ рдореМрдЬреВрдж рдереА, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ "рд╕реБрдЦрдж" рдЖрд╢реНрдЪрд░реНрдп рдХреЛ рдХреЗрд╡рд▓ рдЗрд╕ рд╕реНрддрд░ рдкрд░ рджреЗрдЦрд╛ред рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдирд╛рдо рдорд╛рддреГрднреВрдорд┐ рдХреЗ рджреБрд╢реНрдордиреЛрдВ рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдкрдЯрд╛рдЦреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЖрджрдореА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐
рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдХрд┐рддрд╛рдм рдХреА рддрд▓рд╛рд╢ рдХрд╣рд╛рдБ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдпрд╣ рдерд╛ред рдПрдХ рднреА рд╕рд┐рд░рд┐рд▓рд┐рдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдирд╣реАрдВ рдЖрдпрд╛ (DOS-866 рдкрд░ рд╕рд╛рд░реНрдердХ рдирд╛рдо рдереЗ, рд▓реЗрдХрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рдлрд┐рд░ рдореИрдВ рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рд╣реЛ рдЧрдпрд╛ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╕рдЪреНрдЪрд╛рдИ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛ рдЧрдпрд╛, рд╢рд╛рдпрдж рдореИрдВрдиреЗ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдЦреЛрдЬ рдХреА, рд▓реЗрдХрд┐рди рдЬреАрдЖрдИрдПрд╕-рд▓реИрдм рдордВрдЪреЛрдВ рдкрд░, рдФрд░ рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░ред рдЗрд╕ рдХрд╛рд░реНрдб рдкрд░ krakozyabr рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛ (рдФрд░ 2010 рд╕реЗ рдХрд╛рд░реНрдб, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ) рдпрд╣рд╛рдВ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рддрд╛рд╢ рдерд╛, рдПрдбрд┐рдЯрдкреИрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ (рд╡рд╣рд╛рдВ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ) рдкрд╛рда рдФрд░ рдирд┐рдпрдорд┐рдд) рдФрд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рднреА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░, рд▓реЛ рдФрд░ рдирд┐рд╣рд╛рд░рдирд╛, рдЬрдм рдЖрдк рдЕрдпрд╕реНрдХ
MIK рдПрдиреНрдХреЛрдбрд┐рдВрдЧ: (!?)
рдмрд▓реНрдЧреЗрд░рд┐рдпрд╛рдИ рдореИрдВ рд▓рдЧрднрдЧ рдХреНрдпрд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреН рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдирд╛рдо рд╣реЛ рдЧрдпрд╛ред рд╕рдЪ рд╣реИ, рдирд╛рдореЛрдВ рдореЗрдВ рд╕рднреА рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдбреЙрд╕ рдкреНрд░рддреАрдХ by рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдареАрдХ рд╣реИ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдирд┐рдпрдорд┐рдд рд╕реАрдЬрди рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрд╛рдлреА рдЬрд▓реНрджреА рд╣рд▓ рдХрд┐рдпрд╛ред рдпрджреНрдпрдкрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдпрд╣ рдПрдХ рд╕рд┐рдлрд░ рд╣реИ, рдФрд░ рд╣рдордиреЗ рдПрдХ рджреЛрд╕реНрдд-рдпрд╛-рдХрд┐рд╕реА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ =)ред рд╡реИрд╕реЗ, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдХрд┐ рдЬреАрдЖрдИрдПрд╕-рд▓реИрдм рдкрд░ рд╕рдЪреНрдЪрд╛рдИ рдХрд╛ рддреБрд░рдВрдд рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН: рдЪреЗрдЪрди рдФрд░ рдЗрдВрдЧреБрд╢ рдЧрдгрд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдирдХреНрд╢реЗ рдкрд░ рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ) рд░реЛрд╕рд░реЗрд╕реНрдЯрд░ рдбреЗрдЯрд╛ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг, рд╡реЗ рд╡рд╣рд╛рдВ рд╡реНрдпрд╛рдкрд╛рд░ рдпрд╛рддреНрд░рд╛ рдкрд░ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╣) рд╣реИред рдареАрдХ рд╣реИ, рд╣рд╛рдБ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд┐рд╕рд╕реЗ), рд▓реЗрдХрд┐рди рдПрдХ рдЕрдкреНрд░рд┐рдп рдЕрд╡рдХреНрд╖реЗрдк рдмрдирд╛ рд░рд╣рд╛ред
рдЕрдм рд╣рдо TopoJSON рдХреА рдкреАрдврд╝реА рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рдпрд╣ рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, TopoJSON рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ GeoJSON рдХрд╛ рдПрдХ рдЕрдиреБрдХреВрд▓рди рд╣реИ; рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрдбрд╝реЛрд╕реА рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реАрдорд╛рдУрдВ рдХреЗ рджреЛрд╣рд░рд╛рд╡ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдХрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рднреА рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИ! рд╣рдо
Node.js рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕реЗ
TopoJSON рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ) рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦреЗрдВ:
topojson -o output_topo.json -p -s 1e-7 -- name=input_geo.json
рдпрд╣рд╛рдБ,
-p
рдкреИрд░рд╛рдореАрдЯрд░
feature properties
рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░
-s 1e-7
рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП,
1e-7
рд╕реНрдЯреЗрд░реЗрдбрд┐рдпрди рдореЗрдВ рджрд╣рд▓реАрдЬ рд╣реИ
, рдЬрд┐рддрдирд╛ рдЫреЛрдЯрд╛ рд╕рдЯреАрдХ рдЬреНрдпрд╛рдорд┐рддрд┐ рд╣реИ:
1e-3
рджреБрдирд┐рдпрд╛ рдХреЗ рдирдХреНрд╢реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реНрд╡рд┐рдЯреНрдЬрд░рд▓реИрдВрдб рд╣реИ, рдФрд░
1e-9
рдлреБрдЯрдмреЙрд▓ рдореИрджрд╛рди рд╣реИред рдпрд╣ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдирдХреНрд╢реЗ рдкрд░ рдЬрд╝реВрдо рд╕реБрд╡рд┐рдзрд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдПрдХ рд╡рд┐рднрд╛рдЬрдХ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ
--
рд╕рд┐рд░реНрдл рдПрдХ рд╡рд┐рднрд╛рдЬрдХ (рдЖрдкрдХрд╛ K.O) рд╣реИ, рдФрд░ рд░рд╕рд┐рдпрд╛ рдЙрдкрд╕рд░реНрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдПрдХ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдпрд╣ рднрд╛рд░реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдореИрдВрдиреЗ
рдЖрдИрдПрд╕рдУ 3166-2: RU рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЛрдб рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдирд╛рдо рдмрджрд▓ рджрд┐рдПред рд╡рд╣ рд╕рдм рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХреЛ
GitHub рдкрд░ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдПрдХ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдбреНрд░рд╛ рдХрд░реЗрдВ
рдХреНрдпрд╛ рд╣рдо рдПрдХ рдирдХреНрд╢рд╛ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдпрд╛ рдХреНрдпрд╛? рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ d3.js. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рд╣реИ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ рдФрд░ рдЖрд░рдВрдн рдХрд░реЗрдВ:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Accidents on the Road - Choropleth</title> <script type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script> <script type="text/javascript" src="http://d3js.org/queue.v1.min.js"></script> <script type="text/javascript" src="http://d3js.org/topojson.v0.min.js"></script> </head> <style> your awesome CSS </style> <body> <h1>Cool Header</h1> <script type="text/javascript"> Your awesome d3.js code </script> </body> </html>
рдкрд╣рд▓реЗ рд╣рдо рдЕрдкрдиреЗ рдПрд╕рд╡реАрдЬреА рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рдЖрдпрд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
var width = 960, height = 500;
рд╣рдо рдХрд╛рд░реНрдЯреЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рдбреЛрдореЗрди, рд▓реЗрдЬреЗрдВрдб рдХреЗ рд▓рд┐рдП рдбреЛрдореЗрди рдФрд░ рд▓реЗрдЬреЗрдВрдб рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
var color_domain = [50, 150, 350, 750, 1500] var ext_color_domain = [0, 50, 150, 350, 750, 1500] var legend_labels = ["< 50", "50+", "150+", "350+", "750+", "> 1500"] var color = d3.scale.threshold() .domain(color_domain) .range(["#adfcad", "#ffcb40", "#ffba00", "#ff7d73", "#ff4e40", "#ff1300"]);
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдПрдХ рддрддреНрд╡ рдФрд░ рдПрдХ рдЯреВрд▓рдЯрд┐рдк рд╡рд░реНрдЧ рдЬреЛрдбрд╝реЗрдВред
var div = d3.select("body").append("div") .attr("class", "tooltip") .style("opacity", 0);
рдЖрдХрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрд╕рд╡реАрдЬреА рдЬреЛрдбрд╝реЗрдВред
var svg = d3.select("body").append("svg") .attr("width", width) .attr("height", height);
рдкреНрд░рдХреНрд╖реЗрдкрдг рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВ (рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ
Albers_Siberia.prj рдпрд╛рдж рд░рдЦреЗрдВ / рджреЗрдЦреЗрдВ):
var projection = d3.geo.albers() .rotate([-105, 0]) .center([-10, 65]) .parallels([52, 64]) .scale(700) .translate([width / 2, height / 2]); var path = d3.geo.path().projection(projection);
рдбреЗрдЯрд╛ рдкрдврд╝реЗрдВред
queue() .defer(d3.json, "/d/5685937/russia_1e-7sr.json") .defer(d3.csv, "Accidents.csv") .await(ready);
рд╣рдо рдбреНрд░рд╛рдЗрдВрдЧ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдпреБрдЧрд▓
: -
рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ
: -
рдФрд░
:
ред
function ready(error, map, data) { var rateById = {}; var nameById = {}; data.forEach(function(d) { rateById[d.RegionCode] = +d.Deaths; nameById[d.RegionCode] = d.RegionName; });
рдбреНрд░рд╛рдЗрдВрдЧ рдФрд░ рд░рдВрдЧ рдХрд╛рд░реНрдЯреЛрдЧреНрд░рд╛рдоред
svg.append("g") .attr("class", "region") .selectAll("path") .data(topojson.object(map, map.objects.russia).geometries)
рд╣рдо рдШрдЯрдирд╛рдУрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ: рдХреНрд╖реЗрддреНрд░ рдХреА рдЪрдордХ (рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП) рдФрд░ рдЯреВрд▓рдЯрд┐рдк рдореЗрдВ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирд╛рдо рдФрд░ рд╕рдЯреАрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
.on("mouseover", function(d) { d3.select(this).transition().duration(300).style("opacity", 1); div.transition().duration(300) .style("opacity", 1) div.text(nameById[d.properties.region] + " : " + rateById[d.properties.region]) .style("left", (d3.event.pageX) + "px") .style("top", (d3.event.pageY -30) + "px"); }) .on("mouseout", function() { d3.select(this) .transition().duration(300) .style("opacity", 0.8); div.transition().duration(300) .style("opacity", 0); })
рдЕрдм рдореИрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕ рдирдХреНрд╢реЗ рдореЗрдВ рдХреБрдЫ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рдореИрдВрдиреЗ рд░реВрд╕ рдХреЗ рджрд╕ рд▓рд╛рдЦ рд╕реЗ рдЕрдзрд┐рдХ рд╢рд╣рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд╣рд░ рдФрд░ рдЙрд╕рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (рджрд╢рдорд▓рд╡ рдбрд┐рдЧреНрд░реА рдореЗрдВ рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕
gpsvisualizer.com/ рдХреА рддрд░рд╣ рдПрдХ рдЬрд┐рдпреЛрд╕рд┐рдЯреА рдХрд╛ рдкрддрд╛
рд▓рдЧрд╛рдПрдВред рдЬрд┐рдпреЛрдХреЛрдбрд░ , рддрд╛рдХрд┐ рд╡рд╣ рд░реВрд╕реА рдХреЛ рд╕рдордЭ рд╕рдХреЗ, рдореИрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рдХрд┐рд╕реА рдХреЛ рднреА рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ?), рд▓реЗрдХрд┐рди рдореИрдВ Yandex.Map рдПрдкреАрдЖрдИ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╕реВрдЪреА рдЫреЛрдЯреА рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡реЗ рдЦреБрдж рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЬрд╛рджреВрдЧрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдУрд╣ рдареАрдХ рд╣реИ, рдореИрдВ рд╡рд┐рдЪрд▓рд┐рдд рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓реА:
City lat lon 55.7522200 37.6155600 - 59.8944400 30.2641700
рдареАрдХ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
-
ред
d3.tsv("cities.tsv", function(error, data) { var city = svg.selectAll("g.city") .data(data) .enter() .append("g") .attr("class", "city") .attr("transform", function(d) { return "translate(" + projection([d.lon, d.lat]) + ")"; }); city.append("circle") .attr("r", 3) .style("fill", "lime") .style("opacity", 0.75); city.append("text") .attr("x", 5) .text(function(d) { return d.City; }); }); };
рдпрд╣рд╛рдБ рдореИрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЕрдВрдХреЛрдВ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкрд╛рдИ / рд░рд┐рдВрдЧ рдЖрд░реЗрдЦ, рдЬрд┐рд╕рд╕реЗ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдЯреЛрдЧреНрд░рд╛рдо рдкрд░ рд╕реВрдЪрдирд╛ рд▓реЛрдб рдмрдврд╝ рд░рд╣рд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпреЛрдВ, рдХрд▓реНрдкрдирд╛ рдФрд░ рд╕рдореАрдЪреАрдирддрд╛ рджреНрд╡рд╛рд░рд╛
рдпреВрдЖрдИ /
рдпреВрдПрдХреНрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕реАрдорд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдЦреИрд░, рдЕрдВрдд рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдЯреЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдХрд┐рдВрд╡рджрдВрддреА рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
var legend = svg.selectAll("g.legend") .data(ext_color_domain) .enter().append("g") .attr("class", "legend"); var ls_w = 20, ls_h = 20; legend.append("rect") .attr("x", 20) .attr("y", function(d, i){ return height - (i*ls_h) - 2*ls_h;}) .attr("width", ls_w) .attr("height", ls_h) .style("fill", function(d, i) { return color(d); }) .style("opacity", 0.8); legend.append("text") .attr("x", 50) .attr("y", function(d, i){ return height - (i*ls_h) - ls_h - 4;}) .text(function(d, i){ return legend_labels[i]; });
рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдлрд▓ рд░рд╣рд╛ред рдХреЛрдб рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ (рдХреБрдЫ рднреА рд╕рд╣реА рдирд╣реАрдВ рд╣реИ), рд▓реЗрдХрд┐рди рд▓рдХреНрд╖реНрдп, рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ, рдпрд╣ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдерд╛, рдФрд░ рд╕реБрдкрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ / рдХреБрд╢рд▓ рдирд╣реАрдВ рдерд╛ред рд╕реВрддреНрд░
GitHub рдкрд░ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк
bl.ocks.org рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рдВ, рд╣рдордиреЗ рдпрд╣рд╛рдВ
CSS рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рддреБрдЪреНрдЫ рд╣реИред
рдкрд░рд┐рдгрд╛рдоред рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?
рдареАрдХ рд╣реИ, рдпрд╣рд╛рдБ рд╣рдордиреЗ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдЯреЛрдЧреНрд░рд╛рдо рдмрдирд╛рдпрд╛ рд╣реИ, рдмрд┐рдирд╛ рдирд┐рдХрдЯрддрд╛, рдЬрдЯрд┐рд▓ рдПрдиреАрдореЗрд╢рди рдФрд░ рдЕрдиреНрдп рдШрдВрдЯрд┐рдпрд╛рдБ рдФрд░ рд╕реАрдЯреА рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд┐рдирд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдБ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдФрд░ рд╣рд░ рдЪреАрдЬ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреА рд╡реНрдпрд╛рдкрдХ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ: рд░реЗрдЦрд╛рдВрдХрди, рдЪрд╛рд░реНрдЯ, рдХрд╛рд░реНрдЯреЛрдЧреНрд░рд╛рдо, рдкреЗрдбрд╝, рдЧреНрд░рд╛рдл, рдЪрд╛рд░реНрдЯ, рд╣реАрдЯ рдореИрдк ... рдпрд╣
рдбреЗрдЯрд╛рд╡рд┐рдЬрд╝ рд╣рд╛рд░рд╡реЗрд╕реНрдЯрд░ рд╣реИ, рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЬрд╝рд░реВрд░рдд рд╣реИ
d3js.org рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
рдорд╛рдЗрдХ рдмреЙрд╕реНрдХреЛрдХ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓рдЧрднрдЧ рд╣рд░ рджрд┐рди рдирдП рдЙрджрд╛рд╣рд░рдг рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реИ (рдПрдХ рдорд╛рдЗрдирд╕, рд▓рдЧрднрдЧ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛), рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рд╕реНрдЯреИрдХрдУрд╡рд░рдлреНрд▓реЛ рдХреЛ рддреБрд░рдВрдд рдЬрд╡рд╛рдм рджреЗрддреА рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрд╡рдпрдВ рдорд╛рдЗрдХ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рддреЛ рдЖрдЧреЗ рдмрдврд╝реЗрдВ, рдЖрдИрдПрдордПрдЪрдУ рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдкрд╣рд╛рдбрд╝реА рдХреЗ рдкреАрдЫреЗ рдореБрдЦреНрдп рджреГрд╢реНрдп рдЙрдкрдХрд░рдг рд╣реИ, рд╣рдорд╛рд░реЗ рдзреНрдпрд╛рди рд╕реЗ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╡рдВрдЪрд┐рдд рд╣реИред рдЦреИрд░, рдореИрдВ, рдЕрдЧрд░ рдпрд╣ рд╣рдмреНрдмрд░-рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛, рддреЛ рд╕рдордп-рд╕рдордп рдкрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдм рдХреБрдЫ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдкреБрдирд╢реНрдЪ рдореИрдВ рд▓рдЧрднрдЧ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рднреВрд▓ рдЧрдпрд╛, рд╕рдбрд╝рдХреЛрдВ рдкрд░ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдЪреБрдХреЛрдЯрдХрд╛ рд╕реЗ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╢реИрддрд╛рдирд┐рдпрд╛рдБ рд╣реИрдВ рдФрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░рд╛рд░реЛрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡реАрдбрд┐рдпреЛ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддреЗ рд╣реИрдВ! рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рджреБрдЦрдж рд╣реИ, рдкреНрд░рддрд┐ рд╡рд░реНрд╖ рд▓рдЧрднрдЧ 28 рд╣рдЬрд╛рд░ рдореМрддреЗрдВ, рдбрд░рд╛рд╡рдиреА рд╕рд░рд▓ рд╣реИ (рдбреЗрдЯрд╛ рдпрд╛рддрд╛рдпрд╛рдд рдкреБрд▓рд┐рд╕ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред